TreeListView.AllowRecursiveNodeChecking Property

Gets or sets whether recursive node selection is enabled. This is a dependency property.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v21.1.dll


public bool AllowRecursiveNodeChecking { get; set; }

Property Value

Type Default Description


true, to enable recursive selection; otherwise, false.


Set the AllowRecursiveNodeChecking property to true to enable recursive node checking:

  • When you check/uncheck a parent node, its children become checked/unchecked.
  • When you check/uncheck all child nodes, its parent becomes checked/unchecked.
  • When you check/uncheck a child node, but not all child nodes are checked/unchecked, its parent goes to the indeterminate check state.

<dxg:GridControl Name="gridControl">
        <dxg:GridColumn FieldName="Name"/>
        <dxg:GridColumn FieldName="Department"/>
        <dxg:GridColumn FieldName="Position"/>
        <dxg:TreeListView KeyFieldName="ID" ParentFieldName="ParentID" AutoExpandAllNodes="True"
                          ShowCheckboxes="True" CheckBoxFieldName="OnVacation" AllowRecursiveNodeChecking="True" />
public class Employee {
    public int ID { get; set; }
    public int ParentID { get; set; }
    public string Name { get; set; }
    public string Position { get; set; }
    public string Department { get; set; }
    public bool OnVacation { get; set; }

The TreeListNode.IsChecked property returns the following values:

  • true - if all child nodes are checked
  • false - if none of child nodes are checked
  • null - if a node contains both checked and unchecked children.


If the AllowRecursiveNodeChecking is true, when you use the TreeListView.CheckBoxFieldName property to update a field in a data source, this field should be of the Nullable<Boolean> data type.


Even if the TreeListView.AllowRecursiveNodeChecking is true, for the first time the TreeListView sets values of check boxes in accordance with a data source values.

See Also