Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

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

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

#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