Триггер, когда `SelectedIndex` больше 0 - PullRequest
0 голосов
/ 08 июня 2011

Как я могу установить триггер на 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>

На какой тип триггера я должен смотреть?

Ответы [ 3 ]

3 голосов
/ 09 июня 2011

Я думаю, что было бы гораздо проще иметь эту логику во ViewModel, где бы ни находилось ваше свойство SelectedStatus.Если входящее значение больше 0, установите для другого свойства («SelectedStatus2»?) Значение 0 и наоборот.

1 голос
/ 08 июня 2011

Вы можете написать конвертер, который возвращает True / False, если SelectedIndex больше 0

<DataTrigger Binding="{Binding ElementName=Decisions, 
    Converter={StaticResource IsValueGreaterThanZeroConverter}}" Value="True">
1 голос
/ 08 июня 2011

Почему бы просто не связать свойство SelectedIndex ComboBox B со свойством SelectedIndex ComboBox A?

...