A newer version of this page is available. Switch to the current version.

Tree List

  • 7 minutes to read

Learn the Basics

The Tree List (TreeListControl) is a powerful editing and data shaping component that allows end-users to display and manage large amounts of hierarchical data. The TreeListControl features specific data binding modes designed to work with large amounts of data keeping user interfaces always responsive. The TreeListControl features highly intuitive data shaping capabilities, including sorting and summary calculation, and a rich set of filtering options such as Filter Panel and Auto-Filter Row.


The Tree List is available as a stand-alone control or as one of the GridControl's Views.

Binding to Data

To display data within the TreeListControl, you first need to bind it to the required data source. The following data source technologies are supported.

  • ADO.NET data sets
  • Entity Framework data
  • WCF Data Services
  • DevExpress ORM Tool (XPO)
  • IList / IEnumerable

The TreeListControl also supports the unbound mode. The columns of an unbound tree list control can display custom data not bound to a data field. This section contains help articles and tutorials, related to all supported data binding scenarios.

Learn More...


The TreeListControl allows you to sort data by an unlimited number of columns. When sorting is applied to a tree list, records are re-arranged to meet current sort settings. The TreeListControl manages the automatic sorting for all types of data sources. The TreeListControl sorts the data itself and does not delegate this functionality to the underlying data source. This section covers sorting capabilities available to you at design time and in code, or to your users at runtime. These are:

  • sorting by value;
  • sorting by display text;
  • implementing custom sorting;
  • non-sortable columns.

Learn more...


The TreeListControl allows you to display brief information about specific columns. For instance, you can obtain the number of records or maximum value, etc. Such information is called a summary. This topic provides comprehensive information about summaries, such as:

  • obtaining and formatting summary values;
  • sorting data by summary values;
  • using custom aggregate functions.

Learn more...

Data Editing

This section will guide you through data editing concepts and features supported by the TreeListControl. These are:

  • adding and removing nodes;
  • editing data using in-place editors, custom or default edit forms;
  • editing data in code;
  • input validation.

Learn more...

Filtering and Locating Nodes

This section contains information about the different ways of filtering and locating tree list nodes. You will find articles and tutorials, related to the following features:

  • column filter drop-down menus;
  • filter panel;
  • regular and excel-style filter editors;
  • incremental search;
  • search panel;
  • filter row;
  • filtering and locating nodes API.

Learn more...

Focus and navigation

This group is dedicated to focus movement between cells at runtime. The TreeListControl features multiple selection modes and allows moving cell focus at runtime.

  • Focusing Cells

    This topic provides information on moving focus movement between cells at runtime. The TreeListControl enables you to move focus to specific cells automatically, so end-users don't need to navigate a tree list themselves.

  • Moving Row Focus

    This article is dedicated to methods that enable you to move row focus forward or backward by a specified number of rows.

  • Multiple Node Selection | Multiple Cell Selection

    The TreeListControl supports single node selection, multiple node selection and multiple cell selection modes. These topics provide information on various selection modes.

  • Selection Rectangle

    The rectangle selection feature allows end-users to select a range of nodes or cells by clicking and dragging the mouse pointer over items.

Individual Features

This section contains information about additional TreeListControl features and techniques.

  • Saving and Restoring Layout

    The TreeListControl allows you to save its layout information to a data store (an XML file or stream) and restore it when required. This information may include the visibility, position and size of visual elements, filter, sorting, grouping and summary information, etc.

  • Printing

    The TreeListControl provides multiple methods that allow you to export or print a tree list. The control supports various export formats, including PDF, RTF, XLS, etc.

  • Hit Information

    Hit testing allows you to recognize which element is located at the specified screen coordinates. For instance, you can determine which part of a View a user has clicked or double-clicked.

Appearance and Conditional Formatting

Topics in this section describe different concepts and techniques of changing the way your TreeListControl looks.

The TreeListControl can display four types of popup menus that enable an end-user to manage data and customize a View by showing and hiding its UI elements. This section describes how to make the following customizations:

  • change default menu item names;
  • add and move menu items;
  • remove menu items;
  • dynamically customize popup menus at runtime.

Learn More...

Design-Time Features

The design-time features described in this section speed up the design process of your tree list control. They also allow you to create a fully working application from scratch without writing a single line of code.

End-User Interaction

Topics in this section describe features available to your end-users, such as:

  • context menus;
  • column chooser;
  • clipboard management.

Learn More...

See Also