将Treeview绑定到WPF中具有相同对象列表的对象

时间:2011-10-27 11:41:59

标签: c# wpf binding treeview nodes

我正在尝试制作报告树视图。我可以写一些文本作为父节点,如果需要,我会添加字符串作为子节点来显示更多信息。

我做了一个报告对象:

public class Report
{
    private List<Report> reportList = new List<Report>();

    public string Text { get; set; }
    public List<Report> Reports
    {
        get
        {
            return reportList;
        }
        set
        {
            reportList = value;
        }
    }
}

然后我会有一个Report Collection,然后我会将其提供给treeview项目源,但我不知道如何创建绑定以便它将在整个过程中正确创建子节点,我试着搜索谷歌,但我无法'找到正确的方法。

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您需要使用HierarchicalDataTemplate

<TreeView ItemsSource="{Binding Reports}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:Report}" ItemsSource="{Binding Reports}">
            <TextBlock Text="{Binding Text}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

答案 1 :(得分:0)

<TreeView ItemsSource="{Binding ReportCollection}">
  <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Reports}">
      <TextBlock Text="{Binding Text}" />
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>
</TreeView>