基本上我有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>
答案 0 :(得分:1)
Binding
中的DataTrigger
未正确设置。您已分配Binding
Path
CB1.SelectedItem
,因此它正在查看当前DataContext
对于名为CB1
的属性的所有内容,然后是{{ 1}}该对象的属性。您还添加了SelectedItem
设置,虽然没有破坏任何内容,但在此实例中没有任何意义(用于确定何时使用UpdateSourceTrigger
或TwoWay
将更改推送到源通常在输入控件上绑定。)
要绑定到同一个名称范围内的另一个控件,请使用OneWayToSource
指定控件,并使用ElementName
指定属性:
Path