DataTrigger不会交换回来

时间:2013-05-16 15:02:37

标签: xaml datatrigger

基本上我有2个组合框,我希望isEnabled="false"我的第二个ComboBoxe2只要我的第一个ComboBoxe1.Selecteditem == null

所以我创建了以下DataTrigger

    <ComboBox Name="CB1"
              DisplayMemberPath="NameL"
              IsEnabled="{Binding isNew}"
              SelectedItem="{Binding selectedSpTyp}" 
              ItemsSource="{Binding SpTypList}"/>

    <ComboBox Name="CB2"
              DisplayMemberPath="NameD"
              SelectedItem="{Binding selectedDesginvorlage}"
              ItemsSource="{Binding DesginvorlageList}">
        <ComboBox.Style>
            <Style>
                <Setter Property="UIElement.IsEnabled" Value="True"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding CB1.SelectedItem, UpdateSourceTrigger=PropertyChanged}" Value="{x:Null}">
                        <Setter Property="UIElement.IsEnabled" Value="False"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ComboBox.Style>
    </ComboBox>

1 个答案:

答案 0 :(得分:1)

Binding中的DataTrigger未正确设置。您已分配Binding Path CB1.SelectedItem,因此它正在查看当前DataContext对于名为CB1的属性的所有内容,然后是{{ 1}}该对象的属性。您还添加了SelectedItem设置,虽然没有破坏任何内容,但在此实例中没有任何意义(用于确定何时使用UpdateSourceTriggerTwoWay将更改推送到源通常在输入控件上绑定。)

要绑定到同一个名称范围内的另一个控件,请使用OneWayToSource指定控件,并使用ElementName指定属性:

Path