Skip to main content

TreeList.AppendNode(Object, Int32, Object) Method

Adds a TreeListNode containing the specified values to the XtraTreeList.

Namespace: DevExpress.XtraTreeList

Assembly: DevExpress.XtraTreeList.v23.2.dll

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

Declaration

public virtual TreeListNode AppendNode(
    object nodeData,
    int parentNodeId,
    object tag
)

Parameters

Name Type Description
nodeData Object

An array of values or a DataRow object, used to initialize the created node’s cells.

parentNodeId Int32

An integer value specifying the identifier of the parent node.

tag Object

An object that contains information associated with the Tree List node. This value is assigned to the TreeListNode.Tag property.

Returns

Type Description
TreeListNode

A TreeListNode object or descendant representing the added node.

Remarks

Use the AppendNode method to append a new node to the specified node’s child collection. Use the parentNodeId parameter to specify the parent node by its identifier. Node identifiers are returned by the TreeListNode.Id property. To add a node at the root level, the parentNodeId parameter must be set to the value of the TreeList.RootValue property.

The nodeData parameter specifies data for the columns of the node that is to be created. This parameter value can be an array of values or a DataRow object. The number and order of items in the array/DataRow object must match the number and order of Tree List columns.

Refer to the Nodes topic to learn more.

Example

The following code shows how to manually populate a TreeList control with nodes in unbound mode.

To add nodes in unbound mode, utilize the TreeList.AppendNode method. Data that is passed to this method must match the TreeList columns. So, the TreeList columns are created before the nodes are created.

Note that calls to the methods used to create nodes are wrapped with the TreeList.BeginUnboundLoad and TreeList.EndUnboundLoad methods. This reduces the control’s updates to a minimum, and thus improves performance.

The following image displays the result.

TreeList.AppeandMode_ex

using DevExpress.XtraTreeList;
using DevExpress.XtraTreeList.Columns;
using DevExpress.XtraTreeList.Nodes;

private void Form1_Load(object sender, EventArgs e) {
    CreateColumns(treeList1);
    CreateNodes(treeList1);
}

private void CreateColumns(TreeList tl) {
    // Create three columns
    tl.BeginUpdate();
    TreeListColumn col1 = tl.Columns.Add();
    col1.FieldName = "Customer";
    col1.Caption = "Customer";
    col1.VisibleIndex = 0;
    TreeListColumn col2 = tl.Columns.Add();
    col2.FieldName = "Location";
    col2.Caption = "Location";
    col2.VisibleIndex = 1;
    TreeListColumn col3 = tl.Columns.Add();
    col3.FieldName = "Phone";
    col3.Caption = "Phone";
    col3.VisibleIndex = 2;
    tl.EndUpdate();
}

private void CreateNodes(TreeList tl) {
    tl.BeginUnboundLoad();
    // Create a root node
    TreeListNode parentForRootNodes = null;
    TreeListNode rootNode = tl.AppendNode(
        new object[] { "Alfreds Futterkiste", "Germany, Obere Str. 57", "030-0074321" },
        parentForRootNodes);
    // Create a child of the rootNode
    tl.AppendNode(new object[] { "Suyama, Michael", "Obere Str. 55", "030-0074263" }, rootNode);
    // Create more nodes
    // ...
    tl.EndUnboundLoad();
}
See Also