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

时间:2016-03-07 08:44:00

标签: c# wpf object treeview

我无法理解在使用自定义对象时如何将数据绑定到WPF TreeView。我已经研究过并观看了教程,但我仍然陷入困境。

背景:考虑三个类(我简化了我的问题)。它们代表一个具有Table的数据库,每个表都可以有Fields。有一个表格列表。

1)TableList类 有财产

List<Table Objects> 

2)表类:

  • 物业名称
  • 使用TableFields属性

    SortedDictionary <Name, Field Object>
    

3)田野类:

  • 使用名称属性

我当前尝试将字段(最低级别)绑定到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
  • 我在指导之后所以我可以更好地理解如何绑定这些数据,我的问题的一个例子是数据绑定必须查看一个Table Objects TableFields属性,这是一个SortedDictionary,我想在其中得到Key将是一个字段名称。

我对如何绑定自定义对象以及访问这样的信息感到困惑。

1 个答案:

答案 0 :(得分: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>