我有一个简单的listview控件。我正在使用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)。我只想要一个选择,即当鼠标选择发生时,程序选择消失。我观察到的一件事是,在mouseover选择中,selectionchange事件正在触发但是selectedindex没有得到更新,它仍然是以编程方式设置的索引,这是正确的行为。