MultiBinding和MultiTrigger

时间:2011-12-20 14:07:38

标签: wpf xaml binding

...所以我有2个元素,我希望checbox的IsChecked属性绑定到我的 'IsAlwaysOn'属性在我的My Class对象(双向)中,以及元素combox选择的值属性,如果值为'enter',则IsChecked为false, 任何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用DataTrigger执行此操作,但我不建议使用它,因为CheckBox的值不会始终保存到MyClass.IsAlwaysOn

<Style x:Key="MyCheckBoxStyle" TargetType="{x:Type CheckBox}">
    <Setter Property="IsChecked" Value="{Binding IsAlwaysOn}" />
    <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=MyComboBox, Path=SelectedValue}" Value="Enter">
            <Setter Property="IsChecked" Value="False" />
            <Setter Property="IsEnabled" Value="False" />
        </DataTrigger>
</Style>

相反,我建议在PropertyChange的{​​{1}}通知中处理此问题。为了防止更改,我要在MyClass中包含一个属性来确定是否可以更改CheckBox,或者在上面的触发器中禁用CheckBox。

MyClass