www.pudn.com > TreeListView.rar > treelistview.cs


using System; 
using System.Windows.Controls; 
using System.Windows; 
 
 
namespace _treeListView 
{ 
    public class TreeListView : TreeView 
    { 
        protected override DependencyObject  
                           GetContainerForItemOverride() 
        { 
            return new TreeListViewItem(); 
        } 
 
        protected override bool  
                           IsItemItsOwnContainerOverride(object item) 
        { 
            return item is TreeListViewItem; 
        } 
    } 
 
    public class TreeListViewItem : TreeViewItem 
    { 
        ///  
        /// Item's hierarchy in the tree 
        ///  
        public int Level 
        { 
            get 
            { 
                if (_level == -1) 
                { 
                    TreeListViewItem parent =  
                        ItemsControl.ItemsControlFromItemContainer(this)  
                            as TreeListViewItem; 
                    _level = (parent != null) ? parent.Level + 1 : 0; 
                } 
                return _level; 
            } 
        } 
 
 
        protected override DependencyObject  
                           GetContainerForItemOverride() 
        { 
            return new TreeListViewItem(); 
        } 
 
        protected override bool IsItemItsOwnContainerOverride(object item) 
        { 
            return item is TreeListViewItem; 
        } 
 
        private int _level = -1; 
    } 
 
}