C# 使用x更改可见性:绑定不使用MVVM更新

C# 使用x更改可见性:绑定不使用MVVM更新,c#,xaml,mvvm,converter,visibility,C#,Xaml,Mvvm,Converter,Visibility,自周年更新(Build 14383/14393)以来,您应该能够在不使用转换器的情况下执行以下操作: 我在我的项目中尝试了这一点,最低目标版本设置为Windows 10周年纪念版。不幸的是,我没有让它工作 这段代码工作得很好: <StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}">

自周年更新(Build 14383/14393)以来,您应该能够在不使用转换器的情况下执行以下操作:


我在我的项目中尝试了这一点,最低目标版本设置为Windows 10周年纪念版。不幸的是,我没有让它工作

这段代码工作得很好:

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, 
    Converter={StaticResource BoolToVisibilityConverter}, Mode=TwoWay}">

这个没有(编译时没有错误,只是bool值更改时不显示):



所以我的问题是:我是在说错话,还是这在MVVM场景中还不起作用,而且只有代码隐藏?

结果是x:Bind默认为
Mode=OneTime
——我错误地认为它是
Mode=OneWay
。 所以这确实有效:

<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, Mode=OneWay}>

默认的
模式
一次性
,这会导致代码无法工作。我建议你使用单向
,这应该可以在施展时使用。

这个问题还有一个更详细的答案:@Thomas同一分钟的答案真是太巧了。
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked}>
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked,
   Converter={StaticResource BoolToVisibilityConverter}>
<StackPanel Visibility="{x:Bind ViewModel.IsUnlocked, Mode=OneWay}>