C# Template10中的Shell ViewModel
我正在为我的项目使用带有汉堡菜单的模板10。 要根据用户是否登录动态更改按钮,我想我应该为Shell创建一个ViewModel。不幸的是,DataContext似乎没有正确地针对ViewModel 我已经将数据上下文添加到Shell.xaml中,但是绑定并没有起作用。有没有更好的办法,或者我做错了什么 Shell.xaml代码段: 设置数据上下文:C# Template10中的Shell ViewModel,c#,xaml,win-universal-app,uwp,template10,C#,Xaml,Win Universal App,Uwp,Template10,我正在为我的项目使用带有汉堡菜单的模板10。 要根据用户是否登录动态更改按钮,我想我应该为Shell创建一个ViewModel。不幸的是,DataContext似乎没有正确地针对ViewModel 我已经将数据上下文添加到Shell.xaml中,但是绑定并没有起作用。有没有更好的办法,或者我做错了什么 Shell.xaml代码段: 设置数据上下文: <Page.DataContext> <viewModels:ShellViewModel x:Name="Vie
<Page.DataContext>
<viewModels:ShellViewModel x:Name="ViewModel" />
</Page.DataContext>
Visual Studio正在报告:
错误:BindingExpression路径错误:在“Template10.Controls.HamburgerButtonInfo”上找不到“LoggedIn”属性。BindingExpression:Path='LoggedIn'DataItem='Template10.Controls.HamburgerButtonInfo';目标元素是'Template10.Controls.HamburgerButtonInfo'(Name='null');目标属性为“可见性”(键入“可见性”)它看不到viewmodel的路径以及您为登录创建的属性,path=LoggedIn,DataContext=viewmodel,具体取决于您可能必须找到DataContext组合的深度。这很可能是由于DataItem现在看到的DataContext与hamburger控件中它所属的集合相关。通过将可见性绑定更改为:
"{x:Bind Path=ViewModel.LoggedIn, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverterInverse}}"
private bool _loggedIn;
public bool LoggedIn { get { return _loggedIn; } set { Set(ref _loggedIn, value); } }
"{x:Bind Path=ViewModel.LoggedIn, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverterInverse}}"