如何在WPF中启用“未选中”复选框

本文关键字:未选中 复选框 启用 WPF | 更新日期: 2023-09-27 18:27:24

我正在使用一些代码隐藏来取消选中一个禁用的Checkbox

当未选中此Checkbox时,我需要启用它,并使用XAML执行此操作。

我做这个

 <CheckBox Margin="10,320,427,0" Name="chkIsDefault" 
IsEnabled="{Binding IsChecked, ElementName=Self, Mode=OneWay}" 
 IsChecked="{Binding IsDefault, Mode=TwoWay}"     />

但它不起作用。有线索吗?

如何在WPF中启用“未选中”复选框

如果您想直接绑定到同一对象的另一个属性,请使用RelativeSource=Self

<CheckBox ... IsEnabled="{Binding IsChecked, RelativeSource={RelativeSource Self}, Mode=OneWay}"/>

但由于您想要反转行为(选中时禁用),您可以修改绑定以使用自定义IValueConverter,但我建议使用简单的Trigger代替

<CheckBox IsChecked="{Binding IsDefault, Mode=TwoWay}">
    <CheckBox.Style>
        <Style TargetType="{x:Type CheckBox}">
            <Setter Property="IsEnabled" Value="True"/>
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="IsEnabled" Value="False"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </CheckBox.Style>
</CheckBox>