Back to Devexpress

BaseRow.ParentRow Property

windowsforms-devexpress-dot-xtraverticalgrid-dot-rows-dot-baserow-4d99d6d1.md

latest5.3 KB
Original Source

BaseRow.ParentRow Property

Gets the parent row of the current grid row.

Namespace : DevExpress.XtraVerticalGrid.Rows

Assembly : DevExpress.XtraVerticalGrid.v25.2.dll

NuGet Packages : DevExpress.Win.Navigation, DevExpress.Win.VerticalGrid

Declaration

csharp
[Browsable(false)]
public BaseRow ParentRow { get; }
vb
<Browsable(False)>
Public ReadOnly Property ParentRow As BaseRow

Property Value

TypeDescription
BaseRow

A BaseRow descendant representing the row’s parent.

|

Remarks

If a row is at the root level, the ParentRow property returns null. The row’s nesting level is specified by the BaseRow.Level property.

You can use the BaseRow.HasAsParent method to determine whether a specific row serves as a parent of the current row.

Example

The following example demonstrates how to move the focused row to a specific category row. The example assumes that a grid control has a particular category row whose name is categoryRow_Notes among its rows.

The image below displays the look & feel of a grid control before and after execution of the sample code.

Note that the code listed below is cited as an example of using the different properties of a row object (such as BaseRow.ChildRows, BaseRow.HasAsParent, BaseRow.ParentRow). You can achieve the same results more easily by using the grid’s VGridControlBase.MoveRow method.

csharp
private void MoveFocusedToCategory() {
    BaseRow focusedRow = vGridControl1.FocusedRow;
    BaseRow categoryRow = vGridControl1.Rows["categoryRow_Notes"];

    // checking whether the focused row already belongs to the category or 
    // becomes the category row itself
    if (!(focusedRow.HasAsParent(categoryRow) | focusedRow == categoryRow)) {

        // checking whether the focused row has a parent row or represents a root level row
        if (focusedRow.ParentRow == null) {

            // removing an object representing the focused row from 
            // the grid's collection of top level rows
            vGridControl1.Rows.Remove(focusedRow);
        }
        else {

            // removing an object representing the focused row from 
            // the rows collection of its parent row
            focusedRow.ParentRow.ChildRows.Remove(focusedRow);
        }

        // adding an object representing the focused row 
        //to the end of the category row's chil rows collection
        categoryRow.ChildRows.Add(focusedRow);
    }
}
vb
Private Sub MoveFocusedToCategory()
    Dim FocusedRow As BaseRow = VGridControl1.FocusedRow
    Dim CategoryRow As BaseRow = VGridControl1.Rows("categoryRow_Notes")

    ' checking whether the focused row already belongs to the category 
    ' or becomes the category row itself
    If Not (FocusedRow.HasAsParent(CategoryRow) Or FocusedRow Is CategoryRow) Then

        ' checking whether the focused row has a parent row 
        ' or represents a root level row
        If FocusedRow.ParentRow Is Nothing Then

            ' removing an object representing the focused row 
            ' from the grid's collection of top level rows
            VGridControl1.Rows.Remove(FocusedRow)
        Else

            ' removing an object representing the focused row 
            ' from the rows collection of its parent row
            FocusedRow.ParentRow.ChildRows.Remove(FocusedRow)
        End If

        ' adding an object representing the focused row 
        ' to the end of the category row's chil rows collection
        CategoryRow.ChildRows.Add(FocusedRow)
    End If
End Sub

See Also

HasAsParent(BaseRow)

ChildRows

Level

BaseRow Class

BaseRow Members

DevExpress.XtraVerticalGrid.Rows Namespace