Wpf 如果复选框未选中,如何启用控件?
我知道如果未选中Wpf 如果复选框未选中,如何启用控件?,wpf,xaml,Wpf,Xaml,我知道如果未选中复选框,则可以禁用控件,通常我会这样做: <CheckBox x:Name="myCheckBox" /> <Button IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}" /> 致以最诚挚的问候。您可以将绑定与DataTrigger一起使用: <CheckBox x:Name="myCheckBox"/> <Button x:Name="button">
复选框
,则可以禁用控件
,通常我会这样做:
<CheckBox x:Name="myCheckBox" />
<Button IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}" />
致以最诚挚的问候。您可以将绑定与DataTrigger一起使用:
<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=myCheckBox}"
Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
您可以将绑定与数据触发器一起使用:
<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=myCheckBox}"
Value="True">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
将此答案用于向访问者更新
DataTrigger
的新语法,以实现相同的效果。它在“Visual Studio 2015”或更高版本中对我有效
<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
Value="True">
<DataTrigger.Setters>
<!--it would make the Button in Disabled state since checkbox is in Checked state-->
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
Value="False">
<DataTrigger.Setters>
<!--it would make the Button in Enabled state since checkbox is in Unchecked state-->
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
我希望这对大家都有帮助。谢谢 将此答案用于向访问者更新
DataTrigger
的新语法,以实现相同的效果。它在“Visual Studio 2015”或更高版本中对我有效
<CheckBox x:Name="myCheckBox"/>
<Button x:Name="button">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
Value="True">
<DataTrigger.Setters>
<!--it would make the Button in Disabled state since checkbox is in Checked state-->
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}"
Value="False">
<DataTrigger.Setters>
<!--it would make the Button in Enabled state since checkbox is in Unchecked state-->
<Setter Property="IsEnabled" Value="True"/>
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
我希望这对大家都有帮助。谢谢 我是这样想的,但我正在寻找一个较短的解决方案,我觉得荒谬的是,对于这样一个简单的操作,我们需要wpf中的所有代码。不过,谢谢你的帮助,我非常感谢。如果没有绑定转换器,你不会把它缩短。我是这样想的,但我正在寻找一个更短的解决方案,我觉得荒谬的是,对于这样一个简单的操作,我们需要wpf中的所有这些代码。但是,感谢您的帮助,我非常感谢。如果没有绑定转换器,您将无法缩短它。如果这是一个常见的要求,那么您可以非常轻松地创建一个带有附加属性的
CheckBox
的子类,该属性只是IsChecked
属性的位反转,将其放入一个包含常用函数和控件的dll中。如果这是一个常见的要求,那么您可以很容易地创建一个带有附加属性的CheckBox
的子类,该属性只是IsChecked
属性的按位反转,将其放入一个包含常用函数和控件的dll中。