Visualize, edit, and select hierarchical data as a tree. The WPF TreeView control provides more powerful features than the standard one like auto-search, drag-and-drop, and hierarchical templates.
Visualize and Edit Hierarchical Data
Display your hierarchical list of items, such as indexed entries, directories on a disk, or headings in a document, as a tree structure.
Provide Selection of Multiple Items
TreeView provides the most efficient way to select multiple, non-adjacent items within a long, hierarchical list. Selection is made possible using checkboxes.
Create Data Bound or Unbound Treeviews
The TreeView nodes can be generated automatically from a bound data source. You may also manually create nodes in code or in XAML.
TreeView nodes can be implemented as images, text, or any XAML UI elements. Selection of multiple, non-adjacent items is possible by displaying checkboxes. You may optionally display connecting lines to give the appearance of a classic Windows treeview.
The WPF TreeView includes special templates that allow different UI elements to appear for nodes at different levels in the hierarchy, and when editing nodes.
Allow users to reorder the nodes by dragging and dropping. TreeView supports drag-and-drop operations within the same treeview as well as among multiple treeviews. Parent and child nodes can also be reordered programmatically.
Keyboard Navigation and Auto-Search
Use the cursor keys to navigate the nodes, expanding and collapsing them as you go, or use the auto-search feature to find specific nodes quickly and easily. With auto-search, users can just type a letter to quickly jump to a matching node.
Instead of fully populating each node when the application starts, you can use a delayed loading technique where nodes are populated on-demand when the user expands them. This allows the application to load faster and use resources more efficiently.
High Performance Virtualization
TreeView supports UI virtualization, which improves performance by only creating the TreeView elements needed for display. Child nodes are not created in memory until required regardless of when the data is loaded.