我有两个GroupBox,它们使用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也将被取消选中。我的触发器出了什么问题?
答案 0 :(得分:2)
触发系统将在满足触发条件时应用设定器。当不再满足触发条件时,所有触发器的设置器都将恢复为原始值。这告诉您不能为此目的使用触发器。实现此目的的最佳方法是从Checked
eventhandler。