我在 XAML 中有两个 CheckBox。当第一个复选框未选中时,我希望第二个复选框也未选中。但是,当第一个复选框选中时,我不希望第二个复选框发生任何变化。我还希望两个 CheckBox 都默认选中。使用 似乎应该很简单DataTrigger
,但我做不到。我知道使用事件处理程序在代码中实现这一点很容易,但我想在 XAML 中实现。以下是我实现的:
<CheckBox Name="CheckBox1" Content="CheckBox1" IsChecked="True" />
<CheckBox Name="CheckBox2" Content="CheckBox2">
<CheckBox.Style>
<Style TargetType="{x:Type CheckBox}">
<Setter Property="CheckBox.IsChecked" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=CheckBox1, Path=IsChecked}" Value="False">
<Setter Property="CheckBox.IsChecked" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</CheckBox.Style>
</CheckBox>
两个 CheckBox 一开始都是选中状态,当我取消选中 CheckBox1 时,CheckBox2 也会被正确取消选中。但是当我选中 CheckBox1 时,CheckBox2 也会被错误地选中。我尝试了几种不同的方法,但都没有成功。如果我移除第一个 CheckBox,Setter
它就可以正常工作,但 CheckBox2 一开始就不是选中状态。