In SfDataGrid, the selection is maintained based on SfDataGrid.SelectedItems when grouping and ungrouping. If SelectedItems is zero, then the SfDataGrid processes selection behavior as follows:
Note: This is applicable only when SfDataGrid.SelectionUnit is Row.
If there are no SelectedItems, you can avoid the above default selection behavior by overriding the GridSelectionController, when SfDataGrid.SelectionUnit is Row. If SelectionUnit is Cell or Any, then you can override GridCellSelectionController, that handles all the selection operations in SfDataGrid.
You can set the customized GridSelectionController, GridSelectionControllerExt as per the above code snippet, to SfDataGrid.SelectionController property, as shown in the following code snippet.
GridSelectionController class has various virtual methods that are called for different actions. To handle the selection while grouping or ungrouping, you have to override ProcessOnGroupChanged method in your SelectionController, as shown in the following code snippet.
In the above code, the ProcessOnGroupChanged method is called while grouping or ungrouping a column in SfDataGrid. RefreshSelectedItems method removes the items that are not displayed in the View. Because, while grouping, if the groups are not expanded, the SelectedItems will be cleared and the first caption summary is selected by default. The UpdateCurrentRowIndex method updates CurrentCell based on CurrentItem.
Figure 1: While grouping, the first caption summary row is selected
Figure 2: Avoid selection while grouping and ungrouping in SfDataGrid
|Article ID:||Published Date:||Last Revised Date:||Platform:||Control:||.NET Framework:||Product Version:|