The TreeView/TreeGrid is able to render a whole hierarchy of heterogeneous objects, in a tree-like fashion. The appearance of the control may be configured as a standard grid, a TreeGrid, or a classic TreeView by just changing options with its fluent interface. Moreover, the developer may provide both column and row custom templates. Changes Tracking capabilities are enabled by adding updatesManagers to the control Row Types, as in all Client Controls. The TreeView/TreeGrid may only work as a client control.
All TreeView/TreeGrid levels may be connected with detail forms, and data may be edited both on line and through the detail forms. Sorting, filtering & paging may be provided by adding various types of Retrieval Managers with the TreeView/TreeGrid fluent interface.
The structure of the underlying data may be transformed by moving items from a branch to another, and also from/to other TreeView/TreeGrids. This way the TreeView/TreeGrid enables the user to edit EntitySets connected by one-to-many relations. Also move operations can be undone, by an updatesManager. Move operations, are allowed only if some constraints defined by the developer are satisfied. As a default when item moving is turned on, items may be moved only to branches containing data items of the same data-type, and belonging to the same TreeGrid/TreeView.
The rendering time of big TreeViews/TreeGrids may be reduced by delaying the rendering of children till their branches are opened for the first time. Moreover, children may be loaded dynamically from any data source.