2

我有两个 GroupBoxes,它们使用 CheckBoxes A 和 B 作为它们的标题。我想要的是当检查 B 时,我也希望检查 A。仅当未选中 B 时才启用 A。我有以下代码:

<GroupBox>
            <GroupBox.Header>
                <CheckBox Name="A">
                    <CheckBox.Style>
                        <Style TargetType="{x:Type CheckBox}">
                            <Setter Property="IsEnabled" Value="False" />
                            <Style.Triggers>
                                <MultiDataTrigger>
                                    <MultiDataTrigger.Conditions>
                                        <Condition Binding="{Binding ElementName=B, Path=IsChecked}" Value="True" />
                                    </MultiDataTrigger.Conditions>
                                    <Setter Property="IsEnabled" Value="False" />
                                    <Setter Property="IsChecked" Value="True" />
                                </MultiDataTrigger>
                                <MultiDataTrigger>
                                    <MultiDataTrigger.Conditions>
                                        <Condition Binding="{Binding ElementName=B, Path=IsChecked}" Value="False" />
                                    </MultiDataTrigger.Conditions>
                                    <Setter Property="IsEnabled" Value="True" />
                                </MultiDataTrigger>
                            </Style.Triggers>
                        </Style>
                    </CheckBox.Style>
                    Check Box A
                </CheckBox>
            </GroupBox.Header>
        </GroupBox>
        <GroupBox>
            <GroupBox.Header>
                <CheckBox Name="B">
                    Check Box B
                </CheckBox>
            </GroupBox.Header>
        </GroupBox>

我遇到的问题是,当我取消选中复选框 B 时,复选框 A 也将被取消选中。我的触发器有什么问题?

4

1 回答 1

2

当触发条件满足时,触发系统将应用一个setter。当不再满足触发条件时,所有触发器的设置器都将恢复为原始值。这告诉您不能为此目的使用触发器。完成此操作的最佳方法是从事件处理程序中的代码设置它Checked

于 2013-11-01T17:07:20.157 回答