RadGridView exposes several useful properties and events, which can help you control the keyboard interaction and get notified when keyboard events occur. Moreover, using the keyboard you can perform some common tasks, such as:
- Change the selection—Use the arrow keys to change your selection. To select multiple rows hold the Shift\Ctrl key pressed and use the arrow keys or the mouse to select the desired rows.
- Sort by multiple columns—Hold the Shift key pressed and click all column headers by which you wish to sort your data.
- Sort the current column—Press F3 to change the SortState property of the current column. You can also hold the Shift key while pressing F3 to add, update, or remove the CurrentColumn from the sorting.
Filter the current column— Press the F5 key to open the filtering popup or the filtering button's drop-down menu depending on the
- Group the current column— Press F7 to group/ungroup the current column.
- Start cell edit—Press F2 and the current cell will enter in edit mode.
- End cell edit—Press Enter while the cell is in edit mode. This will confirm the changes you've made.
- Cancel cell edit—Press Escape while the cell is in edit mode. This will rollback the changes you've made.
- Add new row—Press Insert and new row will be inserted automatically.
Delete existing row—Users can delete (if supported by the collection assigned to the ItemsSource of RadGridView) selected items using DELETE key. This feature can be controlled with RadGridView's
CanUserDeleteRowsproperty. Additional to this, the delete command won't be executed if the
IsReadOnlyproperty of RadGridView is true or the selected row is in edit mode.
In case you require to utilize different commands corresponding to the keyboard interaction, you may take advantage of the IKeyboardCommandProvider interface and implement your custom logic. Please check this article for further information.
In the following table you can find some of the actions and the respective combination that invokes them:
|Commit the changes(edit mode) and select next row
|Select next row
|Put current cell in edit mode
|Change the SortingState of the CurrentColumn
|Shift + F3
|Add/update/remove the CurrentColumn from the sorting
|Open the filtering popup or the button's drop-down depending on the FilteringMode property
|Group/ungroup the CurrentColumn
|Cancel the editing of the current cell
|Insert new row
|Delete selected row
|Focus next cell on the left
|Focus next cell on the right
|Focus next cell below
|Focus next cell above
|Focus first cell
|Focuses first cell of last row
|Focus first cell of selected row
|Focus last cell of selected row
|Focuses next cell
|Tab + Shift
|Focuses previous cell
|Ctrl + C
|Ctrl + V
|Ctrl + F
|Show Search Panel
|Collapse a particular item in the hierarchy
|Expand a particular item in the hierarchy
The actions might vary depending on the mode of RadGridView and different property combinations.
You can find more information regarding RadGridView`s commands in the Commands Overview article.
IsTabStopproperty to include/exclude the control in the tab navigation cycle. If this property is set to True, then the control will be included; if it is False it will be skipped.
TabIndexproperty defines the index of the control in the tab navigation cycle. The lower the number is, the earlier the control will be focused while navigating using the Tab key. If you set this property, do not forget to set IsTabStop to True.
TabStopModeproperty of the column denotes if its cells could gain focus with the TAB key navigation.
Here is a list of the common keyboard events exposed by the RadGridView,
KeyUp—occurs when the user releases a keyboard key. The type of the passed event arguments is
KeyDown—occurs when the user presses a keyboard key. The type of the passed event arguments is
In the following example, you can see how to subscribe to KeyDown and KeyUp events from XAML.
Subscribe to KeyDown and KeyUp events
<telerik:RadGridView x:Name="radGridView" KeyDown="radGridView_KeyDown" KeyUp="radGridView_KeyUp"/>
It is always a good practice to attach your event handlers in the XAML, whenever your application logic allows this.
The implementation of both event handlers is located in the code-behind file (C# or VB.NET) and looks like this:
Implementation of KeyUp and KeyDown events
private void radGridView_KeyDown(object sender, KeyEventArgs e)
MessageBox.Show("The pressed key is: " + e.Key.ToString());
private void radGridView_KeyUp(object sender, KeyEventArgs e)
MessageBox.Show("The released key is: " + e.Key.ToString());
Private Sub radGridView_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
MessageBox.Show("The pressed key is: " & e.Key.ToString())
Private Sub radGridView_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs)
MessageBox.Show("The released key is: " & e.Key.ToString())
You can attach to the other keyboard events in the same way.