我在WPF中使用ListView控件时遇到了一些奇怪的行为。
我们正在用C#开发应用程序。
我创建了一个ListView,并添加了一些项,将SelectedIndex设置为其中某个索引。然后我点击ListView上的任何位置,在键盘上按上/下箭头键进行导航,一切都运行得很完美。但是如果我将焦点移动到另一个控件,然后尝试通过编程方式将焦点返回到ListView控件,则会出现问题。
ListView获得焦点,但是当我尝试使用键盘导航时,当前选择将被取消,第一个项目将被选中,并且导航将从列表中的第一个项目开始。
我通过调用其.Focus()方法将焦点设置为ListView控件。
看起来即使ListView控件处于焦点状态,但实际上没有项目处于焦点状态,即使SelectedIndex具有某些有效值。
请帮帮我!如何通过编程方式将焦点设置为ListView控件以防止这种行为?
我发现我的ListView的选定索引与聚焦项不同。
在selectedindex_changed事件中,我将所选索引设置为固定项(5),但当我按箭头键时,该项会改变。这意味着所选索引固定为5,但当前项(以点边框显示)移到了箭头键位置。
无论如何,我的selecteditem都固定为5,但是我的scrollviews移动到当前项的位置。
此代码位于listView1_SelectionChanged中:
listView1.SelectionMode = SelectionMode.Single;
listView1.SelectedIndex = 5;
我的ListView视图已被修改:
<ListView.View>
<GridView AllowsColumnReorder="True">
</GridView>
</ListView.View>
<l:PlainView x:Key="tileView"
ItemTemplate="{StaticResource centralTile}"
ItemHeight="120" ItemWidth="130" />
我不再了解这个问题。
谢谢。