gpt4 book ai didi

c# - Template10 中的 Shell ViewModel

转载 作者:行者123 更新时间:2023-11-30 23:24:15 25 4
gpt4 key购买 nike

我正在为我的项目使用带有汉堡菜单的模板 10。要根据用户是否登录动态更改按钮,我想我会为 Shell 创建一个 ViewModel。不幸的是,DataContext 似乎没有正确定位到 ViewModel。

我已将数据上下文添加到 Shell.xaml,但绑定(bind)没有发挥作用。有没有更好的方法来解决这个问题,还是我做错了什么。

Shell.xaml 片段:

设置数据上下文:

<Page.DataContext>
<viewModels:ShellViewModel x:Name="ViewModel" />
</Page.DataContext>

将可见性绑定(bind)到 View 模型:

<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: Path='LoggedIn' DataItem='Template10.Controls.HamburgerButtonInfo';目标元素是“Template10.Controls.HamburgerButtonInfo”(Name='null');目标属性是“Visibility”(类型“Visibility”)

最佳答案

通过将可见性绑定(bind)更改为解决:

 "{x:Bind Path=ViewModel.LoggedIn, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverterInverse}}"

关于c# - Template10 中的 Shell ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com