我不想禁用自动发生的按钮,而是隐藏(或者更确切地说是折叠可见性)按钮。
答案 0 :(得分:34)
您可以使用样式和触发器,假设该命令负责设置按钮启用/禁用:
<Button x:Name="btnMoveUp"
Command="{x:Static local:Window1.MoveItemUp}">
<Button.Style>
<Style TargetType="{x:Type Button}" >
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
请注意,您可以在更高的范围内定义此样式并共享它 - 我只是将其与Button一起用于更加压缩的示例。
答案 1 :(得分:18)
如果Visibility属性尚未绑定,则没有样式和触发器的相同行为。
Command={Binding MyCommand}
Visibility="{Binding RelativeSource={RelativeSource Self}, Path=IsEnabled, Converter={StaticResource BTVC}}"
其中BTVC是BooleanToVisibilityConverter(必须具备)。
答案 2 :(得分:1)
使用BooleanToVisibilityConverter
并绑定到布尔值described here。