2015-02-10 36 views
0

我有一个简单的数据网格,我使用向下箭头键浏览里面的项目,但是当我到达最后一行并继续按下时,它停止并且不能再次导航就好像它已经失去了重点。我怎样才能循环使用这个键?在标记中是否有这样的属性,或者我需要在代码背后做到这一点?使用箭头键WPF数据网格单元循环

+0

我不知道你的意思,你有什么期待发生什么?对我而言,如果我在网格中最后一行突出显示时继续按下向下键,则最后一行保持高亮显示。 – 2015-02-11 09:41:04

+0

我想在最后一行突出显示后使第一行高亮显示行,并且我一直按下下箭头键 – Kokombads 2015-02-11 23:30:45

回答

1

据我所知,没有办法从标记中更改默认选择行为,所以您需要在后面的代码中执行此操作。

默认行为描述如下:

Default Keyboard and Mouse Behavior in the DataGrid Control

这应该是一个简单的事情,让你可以做这样的事情在PreviewKeyDown事件处理程序的DataGrid:

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