WPF TreeView数据绑定到自定义对象

问题描述:

我无法理解如何使用自定义对象时将数据绑定到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我更新了我的问题 –

这将显示您的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

我已经添加了一个改进的问题,希望能够帮助理解我正在尝试做的事情。我正在研究这个方面的项目,以重新编程。你的帮助将不胜感激,所以我可以学习这个概念并应用它。 –