使用箭头键的WPF数据网格单元循环

时间:2015-02-10 16:40:24

标签: wpf

我有一个简单的数据网格,我使用向下箭头键来浏览里面的项目,但当我到达最后一行并继续按下时,它停止了,无法再导航了,好像它有失去了焦点。我怎样才能使用键遍历这个?标记中是否有这样的属性,或者我需要在后面的代码中执行此操作?

1 个答案:

答案 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