Поделиться через


Поведение мыши и клавиатуры по умолчанию в элементе управления DataGrid

В этом разделе описано, как пользователи могут взаимодействовать с элементом управления DataGrid с помощью клавиатуры и мыши.

Типичные взаимодействия с DataGrid включают навигацию, выделение и редактирование. На поведение выделения влияют свойства SelectionMode и SelectionUnit. DataGridSelectionMode.Extendedи DataGridSelectionUnit.FullRow — это значения по умолчанию, вызывающие поведение, которое описано в этом разделе. Изменение этих значений может привести к поведению, отличному от описанного. Если ячейка находится в режиме редактирования, элемент управления редактированием может переопределить стандартное поведение клавиатуры элемента DataGrid.

Поведение клавиатуры по умолчанию

В следующей таблице описано поведение клавиатуры по умолчанию для DataGrid.

Клавиша или сочетание клавиш Description
СТРЕЛКА ВНИЗ Перемещает фокус на ячейку, находящуюся непосредственно под текущей ячейкой. Если фокус находится в последней строке, нажатие клавиши СТРЕЛКА ВНИЗ ничего не делает.
СТРЕЛКА ВВЕРХ Перемещает фокус на ячейку, находящуюся непосредственно над текущей ячейкой. Если фокус находится в первой строке, нажатие клавиши СТРЕЛКА ВВЕРХ ничего не делает.
СТРЕЛКА ВЛЕВО Перемещает фокус на предыдущую ячейку в строке. Если фокус находится в первой ячейке строки, нажатие клавиши СТРЕЛКА ВЛЕВО ничего не делает.
СТРЕЛКА ВПРАВО Перемещает фокус на следующую ячейку в строке. Если фокус находится в последней ячейке строки, нажатие клавиши СТРЕЛКА ВПРАВО ничего не делает.
HOME Перемещает фокус на первую ячейку текущей строки.
END Перемещает фокус на последнюю ячейку текущей строки.
PAGE DOWN Если строки не сгруппированы, прокручивает элемент управления вниз на количество полностью отображаемых строк. Перемещает фокус на последнюю полностью отображаемую строку без изменения столбца.

Если строки сгруппированы, перемещает фокус на последнюю строку в DataGrid без изменения столбцов.
PAGE UP Если строки не сгруппированы, прокручивает элемент управления вверх на количество полностью отображаемых строк. Перемещает фокус на первую отображаемую строку без изменения столбца.

Если строки сгруппированы, перемещает фокус на первую строку в DataGrid без изменения столбцов.
TAB Перемещает фокус на следующую ячейку текущей строки. Если фокус находится в последней ячейке строки, перемещает фокус на первую ячейку в следующей строке. Если фокус находится в последней ячейке элемента управления, перемещает фокус на следующий элемент управления в порядке табуляции родительского контейнера.

Если текущая ячейка находится в режиме редактирования и нажатие клавиши TAB приводит к переходу фокуса от текущей строки, все изменения, внесенные в строку, фиксируются перед изменением фокуса.
SHIFT + TAB Перемещает фокус на предыдущую ячейку в текущей строке. Если фокус уже находится в первой ячейке строки, перемещает фокус на последнюю ячейку в предыдущей0 строке. Если фокус находится в первой ячейке элемента управления, перемещает фокус на предыдущий элемент управления в порядке табуляции родительского контейнера.

Если текущая ячейка находится в режиме редактирования и нажатие клавиши TAB приводит к переходу фокуса от текущей строки, все изменения, внесенные в строку, фиксируются перед изменением фокуса.
CTRL+СТРЕЛКА ВНИЗ Перемещает фокус на последнюю ячейку текущего столбца.
CTRL + СТРЕЛКА ВВЕРХ Перемещает фокус на первую ячейку текущего столбца.
CTRL + СТРЕЛКА ВПРАВО Перемещает фокус на последнюю ячейку текущей строки.
CTRL+СТРЕЛКА ВЛЕВО Перемещает фокус на первую ячейку текущей строки.
CTRL + HOME Перемещает фокус на первую ячейку элемента управления.
CTRL + END Перемещает фокус на последнюю ячейку элемента управления.
CTRL + PAGE DOWN То же, что и PAGE DOWN.
CTRL + PAGE UP То же, что и PAGE UP.
F2 Если свойство DataGrid.IsReadOnly равно false, а свойство DataGridColumn.IsReadOnly равно false для текущего столбца, помещает текущую ячейку в режим редактирования ячейки.
ВХОД В СИСТЕМУ Фиксирует все изменения в текущей ячейке и строке и перемещает фокус на ячейку непосредственно под текущей ячейкой. Если фокус находится в последней строке, фиксирует все изменения без перемещения фокуса.
ESC Если элемент управления находится в режиме редактирования, отменяет редактирование и все изменения, внесенные в элемент управления. Если базовый источник данных реализует IEditableObject, нажатие клавиши ESC во второй раз отменяет режим редактирования для всей строки.
BACKSPACE Удаляет символ перед курсором при редактировании ячейки.
DELETE Удаляет символ после курсора при редактировании ячейки.
CTRL + ВВОД Фиксирует все изменения в текущей ячейке без перемещения фокуса.
CTRL+A Если для SelectionMode задано значение Extended, выбирает все строки в DataGrid.

Клавиши выбора

Если для свойства SelectionMode задано значение Extended, поведение навигации не меняется, но переход с помощью клавиатуры при нажатой клавише SHIFT (включая комбинацию CTRL+SHIFT) приведет к изменению выделения нескольких строк. Перед началом навигации элемент управления помечает текущую строку как строку привязки. При переходе с нажатой клавишей SHIFT выделение включает все строки между строкой привязки и текущей строкой.

Следующие ключи выбора изменяют выбор нескольких строк.

  • SHIFT + СТРЕЛКА ВНИЗ

  • SHIFT + ВВЕРХ

  • ALT+PAGE DOWN

  • ALT+PAGE UP

  • CTRL+SHIFT+СТРЕЛКА ВНИЗ

  • CTRL+SHIFT+СТРЕЛКА ВВЕРХ

  • CTRL + SHIFT + HOME

  • CTRL + SHIFT + END

Поведение мыши по умолчанию

В следующей таблице описано поведение мыши по умолчанию для DataGrid.

Действие мыши Description
Нажатие в невыделенной строке Делает нажатую строку текущей строкой, а нажатую ячейку — текущей ячейкой.
Нажатие текущей ячейки Переводит текущую ячейку в режим редактирования.
Перетаскивание ячейки заголовка столбца Если свойство DataGrid.CanUserReorderColumns равно true, а свойство DataGridColumn.CanUserReordertrue для текущего столбца, перемещает столбец так, чтобы его можно было поместить в новое расположение.
Перетаскивание разделителя заголовка столбца Меняет размер столбца, если свойство DataGrid.CanUserResizeColumns равно true, а свойство DataGridColumn.CanUserResize равно true для текущего столбца.
Двойное нажатие разделителя заголовка столбца Автоматически определяет размер столбца, используя режим определения размера Auto, если свойство DataGrid.CanUserResizeColumns равно true, а свойство DataGridColumn.CanUserResize равно true для текущего столбца.
Нажатие ячейки заголовка столбца Сортирует столбец, если свойство DataGrid.CanUserSortColumns равно true, а свойство DataGridColumn.CanUserSort равно true для текущего столбца.

При нажатии заголовка уже отсортированного столбца направление сортировки этого столбца меняется на противоположное.

Нажатие клавиши SHIFT при нажатии нескольких заголовков столбца сортирует содержимое по нескольким столбцам в порядке нажатия.
CTRL+щелчок строки Если SelectionMode равно Extended, меняет выделение нескольких несоседних строк.

Если строка уже выбрана, отменяет выбор строки.
SHIFT+щелчок строки Если SelectionMode равно Extended, меняет выделение нескольких соседних строк.
Нажатие заголовка группы строк Разворачивает или сворачивает группу.
Нажатие кнопки "Выделить все" в верхнем левом углу DataGrid Если для SelectionMode задано значение Extended, выбирает все строки в DataGrid.

Выделение мышью

Если свойство SelectionMode равно Extended, при нажатии на строку с нажатой клавишей CTRL или SHIFT будет изменено выделение нескольких строк.

При нажатии строки с нажатой клавишей CTRL строка изменит свое состояние выделения, а все остальные строки сохранят текущее состояние выделения. Выполните это действие, чтобы выбрать несмежные строки.

При нажатии строки с нажатой клавишей SHIFT выделяются все строки между текущей строкой и строкой привязки, расположенной в месте текущей строки до нажатия. При последующих нажатиях строки с нажатой клавишей SHIFT будет изменена текущая строка, а не строка привязки. Сделайте это, чтобы выбрать диапазон смежных строк.

Сочетание клавиш CTRL+SHIFT позволяет выбрать несмежные диапазоны смежных строк. Для этого выберите первый диапазон с помощью клавиши SHIFT и нажатия, как описано выше. После выбора первого диапазона строк нажмите CTRL и соответствующий элемент, чтобы выбрать первую строку следующего диапазона, а затем нажмите последнюю строку следующего диапазона, удерживая нажатыми CTRL+SHIFT.

См. также