2010-11-11 76 views
0

我有一個數據庫表,有Id,Group,Items作爲列。我怎樣結合,使顯示的代碼列表的XAML模板TreeView綁定

組1

  • 項目1
  • 項目2

組2

  • 項目3

回答

0

由於您需要層次結構,因此我認爲最好的方法是TreeView。您必須事先將數據分組到您想要的層次結構中,然後您可以將數據綁定到數據源中的頂級項目,在您的情況下爲「組」項目。

對於確實有子項目的項目,您還需要在樹視圖中添加HierarchicalDataTemplate - 重要的是,無論您從哪個對象繪製項目都必須支持包含子項目集合的屬性, ItemsSource屬性。

對於沒有子項目的項目(您的示例中的「項目」項目),您可以添加常規DataTemplate

總之,樹形XAML可能看起來是這樣的:

 <TreeView Name="myTreeView" ItemsSource="{Binding}" > 
      <TreeView.Resources> 
       <HierarchicalDataTemplate DataType="{x:Type GroupType}" ItemsSource="{Binding Items}"> 
       </HierarchicalDataTemplate> 
       <DataTemplate DataType="{x:Type ItemType}"> 
       </DataTemplate> 
      </TreeView.Resources> 
     </TreeView> 

要分配的頂級節點,一旦你創建了相應的數據對象(即依次對每個已分配的孩子的集合),你可以簡單地說:

foreach(GroupType myGroup in myGroupCollection) 
     myTreeView.Items.Add(myGroup);