我正在为我的项目使用带有汉堡菜单的模板10。为了根据用户是否登录来动态更改按钮,我想为Shell创建一个ViewModel。不幸的是,似乎DataContext没有正确地定位到ViewModel。
我已经将数据上下文添加到Shell.xaml中,但是绑定没有完成它们的工作。有没有更好的方法来解决这个问题,或者我做错了什么。
Shell.xaml片段:
设置数据上下文:
<Page.DataContext>
<viewModels:ShellViewModel x:Name="ViewModel" />
</Page.DataContext>
将可见性绑定到viewmodel:
<Controls:HamburgerButtonInfo AutomationProperties.Name="My Journey"
ClearHistory="False"
PageType="views:MyJourneyPage"
Visibility="{Binding LoggedIn, Converter={StaticResource BooleanToVisibilityConverter}}">
ShellViewModel代码段:
private bool _loggedIn;
public bool LoggedIn { get { return _loggedIn; } set { Set(ref _loggedIn, value); } }
Visual Studio正在报告:错误:BindingExpression路径错误:在'Template10.Controls.HamburgerButtonInfo'上找不到'LoggedIn'属性。BindingExpression:路径='LoggedIn'DataItem ='Template10.Controls.HamburgerButtonInfo'; 目标元素是'Template10.Controls.HamburgerButtonInfo'(Name ='null'); 目标属性为“可见性”(类型为“可见性”)
通过将可见性绑定更改为:
"{x:Bind Path=ViewModel.LoggedIn, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverterInverse}}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句