自周年更新(内部版本 14383/14393)以来,您应该能够 toggle the visibility of XAML elements不使用转换器,像这样:
<TextBlock Text="I'm not visible!" Visibility="{x:Bind IsVisibleFalse}" /> <TextBlock Text="I'm visible!" Visibility="{x:Bind IsVisibleTrue}" />
我在我的项目中尝试过,最低目标版本设置为 Windows 10 周年纪念版。不幸的是我没有让它工作。
这段代码工作得很好:
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked,
Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}">
这个没有(编译时没有错误,只是在 bool 值改变时不显示):
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked}>
我怀疑 Mode="TwoWay"是问题所在,因为您不能将其设置为“当绑定(bind)表达式以强制转换结束时”。此代码也不起作用:
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked,
Converter={StaticResource BoolToVisibilityConverter}>
所以我的问题是:我是不是遗漏了什么,或者这在 MVVM 场景中还不能正常工作,而且只能使用代码隐藏?
最佳答案
默认的 Mode
是 One Time
,这会导致您的代码无法运行。我建议您使用 One Way
,它应该可以在转换时使用。
关于c# - 使用 x :Bind not updating with MVVM 更改可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42340685/