自周年纪念更新(Build 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 Anniversary Edition。不幸的是我没有让它发挥作用。
这段代码很好用:
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked,
Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}">
这个没有(编译时没有错误,只是在bool值改变时不显示):
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked}>
我怀疑Mode =&#34; TwoWay&#34;成为问题,因为你无法设置它&#34;当绑定表达式以演员&#34;结束时。此代码不起作用:
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked,
Converter={StaticResource BoolToVisibilityConverter}>
所以我的问题是:我是在误读某些内容还是在MVVM-Scenario中还没有工作?只有代码隐藏?
答案 0 :(得分:2)
默认Mode
为OneTime
,这会导致您的代码无效。我建议你使用OneWay
,它应该在投射时使用。
答案 1 :(得分:0)
结果x:绑定默认值为Mode=OneTime
- 我错误地认为它是Mode=OneWay
。
所以这确实有效:
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, Mode=OneWay}>