Как получить Excel как поведение в DataGrid? - PullRequest
2 голосов
/ 14 октября 2011

Я использую DataGrid из codeplex в своем приложении WPF.Я определил некоторые DatagridTemplateColumns .Таблица данных может содержать TextBox или ComboBox в зависимости от данных в ViewModel.

Пользователь может перемещаться по элементам сетки с помощью клавиш со стрелками.И когда пользователь нажимает ввод, он переходит к следующему ряду.Это нормальное поведение.

Проблема возникает, когда пользователь подходит к определенной ячейке с помощью клавиш со стрелками и вводит некоторые символы, такие как a, b, c и т. Д., Кроме Tab, Enter и т. Д. Я хочуTextBox или ComboBox для автоматического получения фокуса и перехода в режим редактирования.

Я установил значение IsTabStop false в стиле DataGridCell.Поэтому, когда я нажимаю клавишу Tab из одной ячейки, она автоматически переходит в TextBox или ComboBox следующей ячейки. Но то же самое не происходит с клавишами со стрелками !!

Я не понимаю, как мне это сделать?

1 Ответ

2 голосов
/ 14 октября 2011

Чтобы автоматически перевести ячейку в режим редактирования, вы можете захватить левую кнопку предварительного просмотра мыши на ячейке, а в обработчике событий вы можете установить фокус на ячейке и выбрать ее.

Вы можете зарегистрироватьсобытие для ячейки таблицы данных как

<Style TargetType="{x:Type datagrid:DataGridCell}" x:Key="cellStyle">
      <EventSetter Event="PreviewMouseLeftButtonDown" Handler="DataGridCell_PreviewMouseLeftButtonDown" />

, а затем в обработчике вы также можете проверить наличие модификаторов клавиатуры, чтобы вы могли избежать таких сценариев, как CTRL + щелчок и прочее, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...