当`SelectedIndex`大于0时触发

发布于 2024-11-14 14:57:14 字数 958 浏览 4 评论 0原文

如何在 ComboBox 上设置触发器,当 SelectedIndex 大于 0(基本上,当选择一个选项时)另一个 ComboBox 得到修改的。我有两个 ComboBox,但用户只能从其中之一进行选择。因此,如果我从 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>

我应该关注什么样的触发因素?

How can I set a trigger on a ComboBox that when the SelectedIndex is greater than 0 (basically, when an option is selected) another ComboBox gets modified. What I have are two ComboBoxes but the user can only select from one of them. So if I select the first option from ComboBox A then ComboBox B should get a SelectedIndex of 0 , and vice versa.

I've tried toying with the following but not sure how to capture the logic required.

<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>

What sort of trigger should I be looking at?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

总攻大人 2024-11-21 14:57:14

我认为无论“SelectedStatus”属性在哪里,只要在 ViewModel 中包含此逻辑就会简单得多。如果传入的值大于 0,请将另一个属性(“SelectedStatus2”?)设置为 0,反之亦然。

I think it would be much simpler to just have this logic in the ViewModel, wherever your "SelectedStatus" property is. If the value coming in is greater than 0, set the other property ("SelectedStatus2"?) to 0 and vice versa.

七颜 2024-11-21 14:57:14

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

Why not just bind the SelectedIndex property of ComboBox B to the SelectedIndex property of ComboBox A?

流绪微梦 2024-11-21 14:57:14

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

<DataTrigger Binding="{Binding ElementName=Decisions, 
    Converter={StaticResource IsValueGreaterThanZeroConverter}}" Value="True">

You could write a converter that returns True/False if the SelectedIndex is greater than 0

<DataTrigger Binding="{Binding ElementName=Decisions, 
    Converter={StaticResource IsValueGreaterThanZeroConverter}}" Value="True">
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文