【问题标题】:MultiBinding And MultiTrigger多绑定和多触发器
【发布时间】:2011-12-20 14:07:38
【问题描述】:

...所以我有 2 个元素,我希望复选框的 IsChecked 属性将绑定到我的 我的类对象中的“IsAlwaysOn”属性(双向),以及元素组合框选定的值属性,如果值为“输入”,则 IsChecked 为假, 有什么想法吗?

【问题讨论】:

    标签: wpf xaml binding


    【解决方案1】:

    您可以使用 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>
    

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

    void MyClass_PropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        if (e.PropertyName == "SelectedComboBoxItem")
        {
            if (SelectedComboBoxItem == "Enter")
            {
                IsAlwaysOn = false;
                CanChangeCheckBox = false;
            }
            else
            {
                CanChangeCheckBox = true;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      相关资源
      最近更新 更多