У меня есть простой элемент управления списком. Я использую привязку SelectedIndex, чтобы программно изменить выбор и он работает нормально.
SelectedIndex="{Binding SelectedSearchIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectionChanged="OnSelectionChanged"
Я также использую следующий триггер для выбора при наведении мыши.
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Focusable" Value="False"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
Проблема, с которой я сталкиваюсь, заключается в том, что после выполнения выбора программно (listviewitem 1), если я делаю выбор мышью (listviewitem 5), я вижу 2 выбора (listviewitem 1 и listviewitem 5) в представлении списка. Я просто хочу один выбор, т.е. когда выбор мыши происходит, программный выбор исчезает. Также я заметил, что при выделении указателя мыши происходит событие selectionchange, но выбранный индекс не обновляется, он остается тем индексом, который был установлен программно, если это правильное поведение.