GridControl.ExpandMasterRow(Int32, DetailDescriptorBase) Method
Expands the specified master row and, optionally, shows the specified Detail.
Namespace: DevExpress.Xpf.Grid
Assembly: DevExpress.Xpf.Grid.v20.2.dll
NuGet Packages: DevExpress.WindowsDesktop.Wpf.Grid.Core, DevExpress.Wpf.Grid.Core
Declaration
Parameters
Name | Type | Description |
---|---|---|
rowHandle | Int32 | An integer value specifying the master row by its handle. If the specified row handle is invalid, the method does nothing. |
Optional Parameters
Name | Type | Default | Description |
---|---|---|---|
descriptor | DetailDescriptorBase | *null* | Optional. A DetailDescriptorBase object specifying the detail to be shown. If the specified object doesn’t represent the specified row’s detail, the method expands the first or previously visible detail, depending on whether the current row was previously expanded. |
Remarks
Use this method to expand rows or switch between active Details via code. This might be useful if you want to implement custom controls that manipulate Detail views and hide default expand buttons by disabling the TableView.ShowDetailButtons option.
The ExpandMasterRow method will not have any effect if overridden by the GridControl.MasterRowExpanding event handler.
You can also expand or collapse master rows using the GridControl.CollapseMasterRow and GridControl.SetMasterRowExpanded methods. To determine the expanded state of a row and the currently visible detail, use the GridControl.MasterRowExpanded and GridControl.GetVisibleDetail members.
Example
This sample shows you a few members that allow expanding and collapsing master rows. Keyboard presses are processed to allow the CTRL+* shortcut to toggle the currently focused master row’s state. There are also two buttons - one allowing expansion of all master rows, and another that collapses details for all but the focused row.
The following members are used in this example:
Member | Description |
---|---|
GridControl.CollapseMasterRow | Collapses the detail section for the specified row. |
GridControl.ExpandMasterRow |
Expands the specified master row and, optionally, shows the specified Detail. |
GridControl.IsMasterRowExpanded | Determines the specified master row’s expanded state and, optionally, the specified Detail’s visibility. |
GridControl.SetMasterRowExpanded | Changes the expanded state for a specified master row and, optionally, shows a specified Detail. |
Private Sub TableView_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
Dim view As TableView = TryCast(sender, TableView)
' Avoid key processing when focus is within detail views
' or when a groupo row is focused
If Not view.IsFocusedView OrElse view.FocusedRowHandle < 0 Then
Return
End If
' Process CTRL+* key combination
If e.Key = Key.Multiply AndAlso ((Keyboard.Modifiers And ModifierKeys.Control) = ModifierKeys.Control) Then
Dim finalExpandedState As Boolean = Not view.Grid.IsMasterRowExpanded(view.FocusedRowHandle)
view.Grid.SetMasterRowExpanded(view.FocusedRowHandle, finalExpandedState)
e.Handled = True
End If
End Sub
Private Sub buttonExpandAll_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
For i As Integer = 0 To gridControl1.VisibleRowCount - 1
Dim rowHandle = gridControl1.GetRowHandleByVisibleIndex(i)
gridControl1.ExpandMasterRow(rowHandle)
Next i
End Sub
Private Sub buttonCollapseAllButThis_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If tableView1.FocusedRowHandle >= 0 Then
gridControl1.ExpandMasterRow(tableView1.FocusedRowHandle)
End If
For i As Integer = 0 To gridControl1.VisibleRowCount - 1
Dim rowHandle As Integer = gridControl1.GetRowHandleByVisibleIndex(i)
If rowHandle <> tableView1.FocusedRowHandle Then
gridControl1.CollapseMasterRow(rowHandle)
End If
Next i
End Sub
Related GitHub Examples
The following code snippets (auto-collected from DevExpress Examples) contain references to the ExpandMasterRow(Int32, DetailDescriptorBase) method.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.