Skip to main content

Main Features

  • 6 minutes to read

Tree List control’s features include the following:


Data Specifics

  • Support for Hierarchical Data Relationships - With the XtraTreeList, you can represent any self-referenced data structure without hassle… In bound or unbound mode. Please refer to the Tree Generation Algorithm in the Tree List topic for details.
  • Full ADO+ Support - The Tree List takes full advantage of ADO+. By using this data access architecture and separation of internal data modules from data presentation, the Tree List does not use any extra buffers, thus greatly improving performance and reducing memory use.
  • Advanced Unbound Mode Support - The Tree List works with any source which supports an IList or ITypedList interface, along with all inherited interfaces. Please see the Unbound Mode topic for more information.
  • Export Data to and Import from XML - See the Export and Import Data methods.
  • Dynamic Loading - Allows you to load only root nodes (rows) on start-up. Child nodes are loaded when their parents are expanded. Please see the Unbound Mode topic for details on how this can be implemented.
  • Binding to a Business Object - With this feature, you are able to bind the Tree List control to any object that represents a tree structure. You can do this by implementing the DevExpress.XtraTreeList.IVirtualTreeListData interface for the business object or via the TreeList’s TreeList.VirtualTreeGetChildNodes and TreeList.VirtualTreeGetCellValue events. Please see the Virtual Mode - Binding to a Hierarchical Business Object (Data Source Level) topic for details.

Data Representation Specifics

  • Automatic Sorting against Multiple Columns - With the XtraTreeList, you can sort against an unlimited number of columns, without writing a single line of code. Please refer to the Sorting topic for more information regarding the sorting algorithm implemented in the control.
  • Filtering Nodes - This feature allows you to flexibly control the visibility of nodes. You can filter nodes based upon the contents of a column. It’s also possible to handle the TreeList.FilterNode event to dynamically specify which nodes need to be currently displayed or hidden. Or you can change a node’s visibility directly via the node’s TreeListNode.Visible property.
  • Custom Sorting - Allows you to implement a custom sorting algorithm by handling the TreeList.CustomColumnSort event.
  • Custom Node Height and Runtime Node Resizing - You can implement a custom algorithm that sets different heights for different nodes or you can allow end-users to freely change the heights of nodes at runtime. See the TreeList.CalcNodeHeight and TreeListOptionsBehavior.ResizeNodes topics.
  • Incremental Searching - This allows end-users to quickly locate the required information within the Tree List by typing a search string within a non-editable column. See the TreeListOptionsBehavior.AllowIncrementalSearch and TreeListColumn.AllowIncrementalSearch properties.
  • Auto Preview Pane - Permits you to display long text fields within the TreeList. Jump to the Preview Sections topic to get more information on this feature.
  • Runtime Column Customization - The Tree List provides a quick method of customizing the control’s layout at runtime. End-users can hide specific columns and then restore them using drag and drop.

In-place Editing

  • XtraEditors Library Integration - No more hassle or limits when it comes to using editors within a treeview. The Tree List works in concert with our XtraEditors Library allowing you to use all our field editors (from date controls to combo boxes) directly within your TreeList. Please see the Inplace Editors topic for more details.
  • Editor Repository - You can setup a single in-place editor, for instance a pick image edit as an editor for a payment type field, and use it for as many TreeLists or other DevExpress controls as you wish. When you use the repository and have to add a different credit card payment type, you only need to change it in one in-place editor.

Painting Specifics

  • Support for Multiple Painting Schemes - WindowsXP, Flat, Style3D, Office2003, etc.
  • Skins Support - Skins will bring a striking look and feel to your applications, far beyond the normal painting standards.
  • Appearances - A powerful mechanism to control the entire look and feel of the TreeList, allowing you to customize appearance settings of almost any visual element. See the Appearances topic for more information.
  • Style Conditions - You can apply appearances to cells conditionally to reflect certain states such as errors.
  • Alpha Blending and Background Images - You can greatly improve the look & feel of your Tree List control by assigning a background image to it and using transparent element colors. Please see the Alpha Blending topic for details.
  • Custom Painting - The Tree List provides a set of events that enable you to perform custom painting of control elements. Using this feature, you have no limits in adjusting the control’s look & feel. Please refer to the Custom Drawing topic to see the ways in which this feature can be implemented.


  • Advanced Tree List Designer - The Tree List control’s designer provides access to the control’s settings by categorizing them into separate pages. Thus you can quickly find appropriate options that control different aspects of the XtraTreeList. Jump to Tree List Designer topic to review the designer pages.
  • Nodes Editor - This is an easy-to-use editor that allows you to add nodes at design time (used in unbound mode).
  • Design-time column selection - Not only can you select columns in the Properties grid but also select them directly in the Tree List at design time.


  • Context Menus - Context menus provide end-users with quick access to the most common customization tasks: apply footer and row summaries, invoke column customization, apply best fit to columns and more. It’s also possible to extend the built-in menus by implementing custom features via an event. Refer to the Context Menus topic for details.
  • Column Header and Cell Hint Support.
  • ErrorInfo Support - The Tree List permits you to mark specific cells or entire nodes with error icons and so indicate the cells that contain invalid data. See the TreeList.SetColumnError topic for more information.
  • Save and Load Layouts - By default, the Tree List control enables end-users to customize the control’s layout at runtime. To save the changes made into the layout by end-users between application runs you can use the TreeList’s SaveLayoutTo… and RestoreLayoutFrom… methods. See the Saving and Restoring Layouts to a File, Stream and System Registry topic for more information.
  • Printing (via the XtraPrinting Library).
  • Localization of Every Interface Element. See the Localization topic.
  • Export to XML, HTML, PDF, RTF, TXT and XLS - See the ExportTo… methods (for instance, TreeList.ExportToHtml).