WPF: обновление свойства SelectedItem до нуля не работает через DataTrigger - PullRequest
0 голосов
/ 09 мая 2020

У меня есть два списка, и я пытаюсь очистить выделение одного списка, когда мы выбираем элемент в другом списке.

<ListBox Name="listBox1" HorizontalAlignment="Left"  ItemsSource="{Binding MyData}"  SelectedItem="{Binding SelectedItem1,Mode=TwoWay}">
            <ListBox.Style>
                <Style TargetType="{x:Type ListBox}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=listBox2, Path=SelectedItem, Converter={StaticResource ConverterValuer},ConverterParameter=list1}" Value="false">
                            <Setter Property="SelectedItem" Value="{x:Null}"></Setter>
                            <Setter Property="Background" Value="Pink"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ListBox.Style>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Background" Value="AliceBlue" />
                    <Setter Property="BorderBrush" Value="BlanchedAlmond" />
                    <Setter Property="BorderThickness" Value="2" />
                    <Setter Property="Foreground" Value="Green"/>
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Foreground" Value="DarkOrange" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>
        <ListBox Name="listBox2" HorizontalAlignment="Left" Grid.Row="1"  ItemsSource="{Binding MyData2}" SelectionChanged="listBox2_SelectionChanged" SelectedItem="{Binding SelectedItem2,Mode=TwoWay}">
            <ListBox.Style>
                <Style TargetType="{x:Type ListBox}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=listBox1, Path=SelectedItem, Converter={StaticResource ConverterValuer},ConverterParameter=list2}" Value="false">
                            <Setter Property="Background" Value="Red"></Setter>
                            <Setter Property="SelectedItem" Value="{x:Null}"/>

                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ListBox.Style>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Background" Value="AliceBlue" />
                    <Setter Property="BorderBrush" Value="BlanchedAlmond" />
                    <Setter Property="BorderThickness" Value="2" />
                    <Setter Property="Foreground" Value="Green"/>
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Foreground" Value="DarkOrange" />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>

Я использовал конвертер, чтобы проверить, что selectedItem имеет значение null или не соответствует приведенному ниже *

Чтобы определить, становится ли триггер данных истинным или нет, я попытался изменить цвет фона, и он работает, только для SelectedItem не установлено значение null.

почему я не могу понять.

Позвольте мне помочь решить эту проблему.

С уважением, Нагасри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...