0

如何在A上设置一个触发器,该触发器ComboBox大于SelectedIndex0(基本上选择选项时)ComboBox会进行修改。我拥有的是两个ComboBoxes,但用户只能从其中一个中选择。因此,如果我从 A 中选择第一个选项,ComboBoxComboBoxB 应该得到 aSelectedIndex的 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>

我应该看什么样的触发器?

4

3 回答 3

3

我认为在 ViewModel 中使用这个逻辑会简单得多,无论您的“SelectedStatus”属性在哪里。如果传入的值大于 0,则将另一个属性(“SelectedStatus2”?)设置为 0,反之亦然。

于 2011-06-08T22:16:19.710 回答
1

为什么不直接将B 的SelectedIndex属性绑定到 A 的属性?ComboBoxSelectedIndexComboBox

于 2011-06-08T14:46:43.410 回答
1

如果 SelectedIndex 大于 0,您可以编写一个返回 True/False 的转换器

<DataTrigger Binding="{Binding ElementName=Decisions, 
    Converter={StaticResource IsValueGreaterThanZeroConverter}}" Value="True">
于 2011-06-08T15:14:49.583 回答