当DataGrid接收键盘焦点时,专注于DataGridCell for SelectedItem

Kor*_*fin 7 wpf focus mvvm wpfdatagrid

我有一个DataGridSelectedItem绑定到一个VM Selected属性.我有一个搜索控制,将做一个查找和SelectedItemDataGrid变化(和滚动到视图).WPF 4.0和DataGrid SelectionUnit="FullRow".

我的问题在于焦点.的DataGrid(/经由附加属性结合)接收焦点但不能使用Up,Down,Page Up,Page Down键改变行(SelectedItem).如果我再次选中,则显示第一行显示的第一个单元格,它会更改SelectedItem.

底线,我怎么可以给键盘焦点DataGridCellSelectedItem时候DataGrid获得焦点?

有这么多DataGrid/ Focus问题,已经尝试了一些事情.谢谢你的帮助.

Ric*_*d E 7

您需要为新选择的行提供逻辑焦点.选择新项目后,尝试用以下方法替换您的SetFocus呼叫:

        var selectedRow = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(dataGrid1.SelectedIndex);
        FocusManager.SetIsFocusScope(selectedRow, true);
        FocusManager.SetFocusedElement(selectedRow, selectedRow);
Run Code Online (Sandbox Code Playgroud)