如何在ComboBox
上设置一个触发器,当SelectedIndex
大于0时(基本上,当选择一个选项时)另一个ComboBox
被修改。我有两个ComboBox
es但用户只能从其中一个中选择。因此,如果我从ComboBox
A中选择第一个选项,那么ComboBox
B应该得到SelectedIndex
0,反之亦然。
我尝试过以下操作,但不确定如何捕获所需的逻辑。
<ComboBox ItemsSource="{Binding AvailableStatuses}"
SelectedItem="{Binding SelectedStatus}"
Grid.Row="1" Grid.Column="1" DisplayMemberPath="Name"
x:Name="Statuses">
<ComboBox.Style>
<Style TargetType="{x:Type ComboBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=Decisions}" Value="0">
<Setter Property="SelectedIndex" Value="0" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
我应该看一下什么样的触发器?
答案 0 :(得分:3)
我认为只要你的“SelectedStatus”属性在ViewModel中拥有这个逻辑就会简单得多。如果进入的值大于0,则将另一个属性(“SelectedStatus2”?)设置为0,反之亦然。
答案 1 :(得分:1)
为什么不将SelectedIndex
B的ComboBox
属性绑定到SelectedIndex
A的ComboBox
属性?
答案 2 :(得分:1)
如果SelectedIndex大于0
,您可以编写一个返回True / False的转换器<DataTrigger Binding="{Binding ElementName=Decisions,
Converter={StaticResource IsValueGreaterThanZeroConverter}}" Value="True">