我有一个简单的数据网格,我使用向下箭头键来浏览里面的项目,但当我到达最后一行并继续按下时,它停止了,无法再导航了,好像它有失去了焦点。我怎样才能使用键遍历这个?标记中是否有这样的属性,或者我需要在后面的代码中执行此操作?
答案 0 :(得分:1)
据我所知,没有办法从标记中更改默认选择行为,因此您需要在后面的代码中执行此操作。
此处描述的默认行为:
Default Keyboard and Mouse Behavior in the DataGrid Control
这应该是一个简单的事情,你可以在DataGrid的PreviewKeyDown事件处理程序中做这样的事情:
if (e.Key == Key.Down && MyDataGrid.SelectedIndex == (MyDataGrid.Items.Count - 1))
{
MyDataGrid.SelectedIndex = 0;
MyDataGrid.ScrollIntoView(MyDataGrid.SelectedItem);
e.Handled = true;
}
但是,虽然这会根据需要选择顶行,但所选单元格的键盘焦点会干扰将来的按键操作。
如果您确实想要这种行为,那么这里有一篇非常好的文章:
WPF: Programmatically Selecting and Focusing a Row or Cell in a DataGrid