如何在ViewModel中将按钮的可见性绑定(bind)到bool值?
<Button Height="50" Width="50" Style="{StaticResource MyButtonStyle}"
Command="{Binding SmallDisp}" CommandParameter="{Binding}" Cursor="Hand"
Visibility="{Binding Path=AdvancedFormat}" />
最佳答案
假设AdvancedFormat
是bool
,则需要声明并使用 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/