Как установить свойство viewmodel, если выбран элемент списка? - PullRequest
1 голос
/ 07 марта 2012

У меня есть список ... и он привязан к списку элементов типа (класса) "A". Класс "A" имеет логическое свойство "IsCurrentViewActive". Это ложно по умолчанию. Когда пользователь выбирает элемент в списке .... мне нужно установить для свойства IsCurrentViewActive соответствующего элемента значение TRUE.

Я попробовал приведенный ниже код в моем списке ... но он не работает .. Любая помощь будет оценена.

<Style x:Key="ListBoxItemTabStyle2Extended" TargetType="{x:Type ListBoxItem}" >
                <Setter Property="IsSelected" Value="{Binding Path=IsCurrentViewActive, Mode=TwoWay}"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}}" Value="True">
                    <Setter Property="IsSelected" Value="{Binding Path=IsCurrentViewActive, Mode=TwoWay}"/>
                </DataTrigger>                    
                </Style.Triggers>
            </Style>

РЕДАКТИРОВАТЬ: Можем ли мы сделать это так или мне нужно использовать прикрепленное свойство?

1 Ответ

0 голосов
/ 14 сентября 2018

Вышеупомянутый XAML действительно работал для меня на самом деле.Я думаю, что это просто вопрос правильного контекста.Я создал образец, который вы можете скачать, где это работает нормально.Я думаю, что разница может заключаться в том, что в моей версии я храню стиль в ресурсах родительского элемента управления ListBox.Я не думаю, что вы можете хранить их в ресурсах ListBox.

https://www.dropbox.com/s/s64kp9p0b2w1imk/ListBoxMenu.7z?dl=0

...