【发布时间】:2011-03-30 11:12:49
【问题描述】:
我在 Windows Presentation Foundation 工作,我需要将两个按钮绑定在一起。第一个按钮是经典按钮,第二个是切换按钮。当用户按下切换按钮时,它变为“ON”,此时我需要禁用经典按钮。当用户再次按下切换按钮并变为“关闭”时,经典按钮应变为“启用”。如果没有与转换器的经典绑定,有什么方法可以做到这一点。我的意思是触发器或类似的东西。
【问题讨论】:
我在 Windows Presentation Foundation 工作,我需要将两个按钮绑定在一起。第一个按钮是经典按钮,第二个是切换按钮。当用户按下切换按钮时,它变为“ON”,此时我需要禁用经典按钮。当用户再次按下切换按钮并变为“关闭”时,经典按钮应变为“启用”。如果没有与转换器的经典绑定,有什么方法可以做到这一点。我的意思是触发器或类似的东西。
【问题讨论】:
您可以使用触发器来做到这一点,但使用转换器会更简洁。触发器版本是这样的:
<Button Content="One">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=tb}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<ToggleButton x:Name="tb">Two</ToggleButton>
如果将合适的转换器声明为资源,它会更像这样:
<Button Content="One" IsEnabled="{Binding IsChecked, ElementName=tb, Converter={StaticResource BooleanInverterConverter}}" />
<ToggleButton x:Name="tb">Two</ToggleButton>
【讨论】: