2016-03-07 135 views
0

我無法理解如何使用自定義對象時將數據綁定到WPF TreeView。我已經研究並觀看了教程,但我仍然陷入困境。WPF TreeView數據綁定到自定義對象

背景:考慮三類(我簡化了我的問題)。它們代表一個有表格的數據庫,每個表格可以有字段。有一個表的列表。

1)TableList類 財產

List<Table Objects> 

2)表類:

  • 屬性名稱
  • 隨着TableFields屬性

    SortedDictionary <Name, Field Object> 
    

3)Field類:

  • 隨着名稱屬性

我的電流的字段(最低級)結合Table.TableFields.Key

<DataTemplate x:Key="fieldTemplate"> 
      <TextBlock Text="{Binding Path=Table.TableFields.Key}"/> 
</DataTemplate> 

嘗試的一個例子DESIRED OUTPUT - 表格列表的分層視圖,包含表格及其字段。

Table 1 
    Field 1 
    Field 2 
    Field 3 
Table 2 
    Field 1 
    Field 2 
    Field 3 
Table N 
    Field N 
  • 我的指導後,這樣我就可以更好地瞭解如何將這些數據綁定,我的問題的一個例子是數據綁定已經看一個表對象TableFields屬性,它是一個SortedDictionary,我在其中想要獲得將是字段名稱的密鑰。

我很困惑如何綁定自定義對象並訪問這樣的信息。

+0

我不知道我理解的問題,有什麼用樹的可視化工作是創建一個節點類,是一個綁定到時候我一直使用樹形控件,並且是一個友好的樹型數據類,它包含組成由讀取數據的加載方法創建的樹的各個級別的各種對象的數據。 –

+0

@sabrina_cs我更新了我的問題 –

回答

1

這將顯示您的TreeView

 <TreeView ItemsSource="{Binding TableList}"> 
      <TreeView.ItemTemplate> 
       <HierarchicalDataTemplate ItemsSource = "{Binding Path=TableFields}"> 
        <TextBlock Text="{Binding Path=Name}"/> 
        <HierarchicalDataTemplate.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Key}"/> 
         </DataTemplate> 
        </HierarchicalDataTemplate.ItemTemplate> 
       </HierarchicalDataTemplate> 
      </TreeView.ItemTemplate> 
     </TreeView> 
+0

謝謝您的回覆,但我不確定這有助於。 我更瞭解並學習如何正確地做到這一點。我也不認爲HierarchialDataTemplate到TableFields將工作?在這種情況下,我不會提及表格本身。 通過添加我的預期輸出進行更新。 –

+1

無論您設置爲TreeView的ItemsSource的集合,都將通過與DataTemplate相同的HierarchicalDataTemple顯示,但此外它提供了可設置爲顯示子級別的ItemsSource屬性。 HierarchicalDataTemplate.ItemTemplate將定義如何顯示該子級別。同樣使用HierarchicalDataTemplate中的HierarchicalDataTemplate,您可以顯示儘可能多的子級。 – Nitin

+0

我已經添加了一個改進的問題,希望能夠幫助理解我正在嘗試做的事情。我正在研究這個方面的項目,以重新編程。你的幫助將不勝感激,所以我可以學習這個概念並應用它。 –