将树视图绑定到WPF中具有相同对象列表的对象

本文关键字:对象 列表 视图 绑定 WPF | 更新日期: 2023-09-27 18:12:28

我想做一个报告树视图。在那里我可以写一些文本作为父节点,如果需要的话,我会添加添加字符串作为子节点来显示更多的信息。

我创建了一个报告对象:

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;
        }
    }
}

然后我有一个报告集合,我将然后馈送到一个树视图itemssource,但我不知道如何创建绑定,以便它将创建正确的子节点,我试着搜索谷歌,但我找不到正确的方法。

这里有人能帮帮我吗?

将树视图绑定到WPF中具有相同对象列表的对象

您需要使用HierarchicalDataTemplate

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