TreeListView for WPF & Silverlight
Core Features Databinding support
BinaryTreeListview control can be bound to any datasource - including XML, data from your LINQ queries, Array, ObservableCollection or any source that implements IEnumerable interface.
Supports grouping and sorting of items
You can setup the view (typically the CollectionView / CollevtionViewSource) of any given top level node (that has children) to be able to sort and group at the level of each node's children sibling nodes.
Supports data bound and unbound modes
BinaryTreeListview supports both data bound and unbound modes. You can simply use WPF (& Silverlight) Binding to point to any IEnumerable data source, OR be also able to add tree-list items to the control, programatically or in XAML.
Treeview column can be placed in any column of your choice
You can setup columns, and then choose any column to act as the tree-list column - i.e. the column that will expand/collapse its children. Additionally, the tree-list column can be positioned in any column index position, not necessarily the first column.
The control comes with several custom controls
BinaryTreeListview comes with pre-written custom controls, including BinaryCheckbox, Imagebox, and colorpicker controls, that can be used as the control column's cell template.