Как установить фокус на строку в сетке в WPF
У меня есть окно редактирования, которое всплывает с сеткой. Эта сетка является сеткой C1FlexGrid, созданной ComponentOne. (но я думаю, что это может быть похожая проблема с другими сетками..)
Я хочу, чтобы первая строка в этой сетке получала фокус и была выбрана, когда я открываю это окно из главного окна.
Желательно в xaml, но если это невозможно в коде или наследовании flexgrid.
Я знаю, как настроить выделение строки и сетки, чтобы получить фокус, но строка не сфокусирована, поэтому я не могу перемещаться по рядам сетки, перемещаясь со стрелками вверх и вниз на клавиатуре.
1 ответ
Программно выберите строку в WPF DataGrid, а затем программно поместите фокус на эту ячейку, чтобы затем можно было перемещаться по DataGrid с помощью клавиш со стрелками на клавиатуре. Часть кода для выбора будет выглядеть так:
int index = 1;
dgUsers.SelectedItem = dgUsers.Items[index];
dgUsers.ScrollIntoView(dgUsers.Items[index]);
DataGrid dgrow = (DataGrid)dgUsers.ItemContainerGenerator.ContainerFromItem(dgUsers.Items[index]);
dgrow.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));