Skip to main content

BaseRow.HasAsParent(BaseRow) Method

Determines whether the current row has a specific row as its parent.

Namespace: DevExpress.XtraVerticalGrid.Rows

Assembly: DevExpress.XtraVerticalGrid.v24.2.dll

Declaration

public bool HasAsParent(
    BaseRow gridRow
)

Parameters

Name Type Description
gridRow BaseRow

A BaseRow descendant that represents the row to check.

Returns

Type Description
Boolean

true if the current row has the specified row as its parent; otherwise false.

Remarks

You can use this method to determine whether a row specified by the gridRow parameter serves as the parent for the current row.

The HasAsParent method inspects rows from the current to the root level to determine whether a specific row represented by the BaseRow class descendant can be found by this path.

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.

BaseRow_MoveFocusedRowToCategory_example

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.

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);
    }
}
See Also