2015-06-22 158 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