Другой вопрос о привязке к datagrid
У меня есть datagrid. Он имеет режим выбора, установленный для FullRow и KeyboardNavigation.TabNavigation = "Once", который, как я надеялся, получит желаемый результат, но это не так.
Когда клавиша табуляции нажимается, когда объект данных имеет фокус, он поочередно накладывается на каждый столбец сетки. Поэтому, если я вхожу в сетку с 4 столбцами, мне нужно будет нажать вкладку 4 раза, чтобы перейти к следующему tabindex.
Я хочу, чтобы клавиша табуляции сразу же вышла из таблицы данных при первом нажатии и дала фокус следующему tabindex... если это имеет смысл.
Я попытался переопределить ключ табуляции в обработчике событий keydown.
class BetterDataGrid : DataGrid
{
..............
protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)
{
..............
if (e.Key == Key.Tab)
{
Console.WriteLine("TAB");
MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
.........
}
Он записывает "TAB" на консоль, но вкладка по-прежнему сохраняет поведение по умолчанию. Не уверен, что это правильный способ перехода к следующему tabindex, но тогда это должно сделать ключ вкладки ничего не делать, кроме как написать на консоль или вызвать исключение. Заставляет меня думать, что невозможно переопределить поведение вкладки.
Надеемся на полезный ввод. Как всегда, спасибо заранее.