C# treeview的分层数据模板类

C# treeview的分层数据模板类,c#,wpf,treeview,C#,Wpf,Treeview,我想在我的项目中为我的TreeView实现一个分层数据模板。 结构应如下所示: - ManagedItems (RootItem) - Department 1 -Client 1 - Feature 1 - Feature 2 -Client 2 - Feature 1 - Department 2 - Department 4

我想在我的项目中为我的TreeView实现一个分层数据模板。 结构应如下所示:

- ManagedItems (RootItem)
     - Department 1
         -Client 1
             - Feature 1
             - Feature 2
         -Client 2
             - Feature 1
     - Department 2
             - Department 4
                     - Department 5
                            -Client 4
                                   - Feature 1
     - Department 3
         -Client 3
             - Feature 1
             - Feature 2
             - Feature 3


//Current class for datatype
public class Entries
{
    public string Department { get; set; }
    public string Client { get; set; }

    // ?? How to implement a drive array and a feature array which will be displayed correctly in the treeview?

    public ObservableCollection<Entries> Children { get; set; }
}
-ManagedItems(RootItem)
-第一部门
-客户1
-特征1
-专题2
-客户2
-特征1
-第二部门
-第四部门
-第五部门
-客户4
-特征1
-第三部门
-客户3
-特征1
-专题2
-专题3
//数据类型的当前类
公开课参赛作品
{
公共字符串部门{get;set;}
公共字符串客户端{get;set;}
//?如何实现将在treeview中正确显示的驱动器阵列和功能阵列?
公共可观测集合子项{get;set;}
}
它在C#和WPF(.NET4.0)中。 一些想法


谢谢。

您的型号的线框:

class ManagedItems {
   IList<Department> Departments // TreeView.ItemsSource
}
class Department {// HierDT
   IList<object> Children // HierDT.ItemsSource; (can either be Department or Client)
}
class Client {// HierDT
   IList<Feature> Features // HierDT.ItemsSource
}
class Feature { } // normal DataTemplate
类管理数据项{
IList部门//TreeView.ItemsSource
}
班级部门{//HierDT
IList Children//HierDT.ItemsSource;(可以是部门或客户)
}
类客户端{//HierDT
IList功能//HierDT.ItemsSource
}
类特征{}//普通数据模板
TreeView.Resources中定义
部门
客户
层次
功能
数据模板

注意
部门。儿童
对象
。这是可以的,因为当WPF“看到”一个
客户机时,它将“膨胀”到相应的
层次(以及当它“看到”一个
部门时,它将膨胀到
部门定义的
层次
)。

这是事实上WPF TreeView在web上的最佳示例。如果您还没有听说过MVVM,您可能还想看看它的一些示例。