如何在ViewModel中将按钮的可见性绑定(bind)到bool值?

<Button Height="50" Width="50" Style="{StaticResource MyButtonStyle}"
    Command="{Binding SmallDisp}" CommandParameter="{Binding}" Cursor="Hand"
    Visibility="{Binding Path=AdvancedFormat}" />

最佳答案

假设AdvancedFormatbool,则需要声明并使用 BooleanToVisibilityConverter :

<!-- In your resources section of the XAML -->
<BooleanToVisibilityConverter x:Key="BoolToVis" />

<!-- In your Button declaration -->
<Button
 Height="50" Width="50"
 Style="{StaticResource MyButtonStyle}"
 Command="{Binding SmallDisp}" CommandParameter="{Binding}"
Cursor="Hand" Visibility="{Binding Path=AdvancedFormat, Converter={StaticResource BoolToVis}}"/>

请注意添加的Converter={StaticResource BoolToVis}

在使用MVVM时,这是一种非常常见的模式。从理论上讲,您可以自己在ViewModel属性上进行转换(即仅使属性本身的类型为Visibility),但是我不希望这样做,因为现在您正将关注点分离弄乱了。项的可见性实际上应该取决于View。

关于c# - 将Button的可见性绑定(bind)到ViewModel中的bool值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7000819/

10-11 02:00