2015-06-22 154 views
0

我有3类的:WPF MVVM TreeView控件组

  1. 大厦
  2. 办公室

在建筑物有办公室,每个办公室有个人。 我的ViewModel有一个办公室的ObservableCollection,其中一个属性是Building和ObservableCollection。

什么是创建绑定到办公室,它由建筑,办公室,人员分组的TreeView的最佳方式是什么?

实施例:

  • 号楼

    • OFFICE1
      • PERSON1
      • PERSON2
      • Person3可能
    • Office2
      • Person4
      • person5
  • Building2

    • Office3
      • Person6
      • Person7
      • Person8
    • 办事处
      • Person9
      • person10

回答

3

如果你想获得此布局在您的树状视图您将创建HieratchicalD用于建筑物和办公室的ata模板以及用于个人的DataTemplate。我假设您在所有3个ViewModel中都有一个名为Name的文本属性。

<TreeView ItemsSource="{Binding Buildings}"> 
      <TreeView.Resources> 
       <HierarchicalDataTemplate ItemsSource="{Binding Offices}" DataType="{x:Type VM:BuildingViewModel}"> 
        <TextBlock Text="{Binding Name}"/> 
       </HierarchicalDataTemplate> 
       <HierarchicalDataTemplate ItemsSource="{Binding Persons}" DataType="{x:Type VM:OfficeViewModel}"> 
        <TextBlock Text="{Binding Name}"/> 
       </HierarchicalDataTemplate> 
       <DataTemplate DataType="{x:Type VM:PersonViewModel}"> 
        <TextBlock Text="{Binding Name}"/> 
       </DataTemplate> 
      </TreeView.Resources> 
     </TreeView> 
+0

谢谢!有用! – user436862

+0

@ user436862如果我回答你的问题,你可以'接受'我的答案作为解决方案吗? – Krishna

+0

当然!谢谢... – user436862