【发布时间】:2014-04-08 09:04:19
【问题描述】:
我有 2 个复选框(chkMfsUi 和 chkMfs)。当我检查 chkMfsUi 时,我也想检查 chkMfs(并禁用它)。
我用数据触发器试了一下:
<Style x:Key="MfsCheckBoxStyle" TargetType="CheckBox">
<Setter Property="IsEnabled" Value="True" />
<Setter Property="IsChecked" Value="False" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=chkMfsUi}" Value="True">
<Setter Property="IsEnabled" Value="False" />
<Setter Property="IsChecked" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
这些是我的复选框:
<StackPanel>
<CheckBox Name="chkMfsUi"
Checked="CheckBox_Checked"
Content="MFS - UI"
IsChecked="{Binding MfsUi}"
Unchecked="CheckBox_Checked" />
<CheckBox Content="MFS" IsChecked="{Binding Mfs}" Style="{StaticResource MfsCheckBoxStyle}" />
</StackPanel>
IsEnabled 属性可以正常工作,但 IsChecked 不能。也许是因为它是绑定的?我也在使用 INotifyPropertyChanged 和这些属性。
如果我在后面的代码中设置它,它可以工作,但是可以使用触发器吗?
问候,
阿方
编辑:
从目前的答案看来,我的问题似乎不完整。我需要有以下三种状态:
最后但同样重要的是:必须绑定两个复选框的 IsChecked 属性! (这就是麻烦出现的时刻)
【问题讨论】: