Еще один вопрос о связывании ключей для таблицы данных
У меня есть таблица данных.В нем выбран режим выбора FullRow и KeyboardNavigation.TabNavigation = "Once", который, как я надеялся, получит желаемый результат, но это не так.
Когда клавиша табуляции нажата, когда сетка данных находится в фокусе, она будет перемещаться по каждому столбцу в сетке один за другим.Поэтому, если я вкладываю вкладку в сетку, которая имеет 4 столбца, мне придется нажимать вкладку 4 раза, чтобы перейти к следующему индексу вкладки.
Я хочу, чтобы клавиша табуляции вставляла сразу из сетки данных при первом нажатии и фокусировалась на следующем индексе табуляции ... если это имеет смысл.
Я попытался переопределить клавишу табуляции в обработчике события 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, но тогда это должно заставить клавишу tab ничего не делать, кроме записи в консоль или вызывать исключение.
Заставляет меня думать, что невозможно переопределить поведение клавиши tab.
Надеемся на полезный вклад.
Как всегда, заранее спасибо.