2012-03-14 74 views
0

我想在我的项目中实现我的树视图的分层数据模板。 结构应该看起来像: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; } 
} 

这是一个在C#和WPF(.NET 4.0)。 有些想法?

谢谢。

回答

1

线框的模型:

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 

定义DepartmentClientHierDTsFeatureDataTemplateTreeView.Resources

注意Department.Childrenobjects。这是好的,因为当WPF“看到”Client时,它将“膨胀”到合适的HierDT(以及当它“看到”Department时,它将膨胀至Department的定义为HierDT)。

+0

这篇文章(http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode)是WPF TreeView在网络上事实上最好的例子。如果你还没有听说过MVVM,你也可以看看它的一些例子。 – 2012-03-15 13:52:37