Привязать Treeview к объекту со списком того же объекта в WPF - PullRequest
1 голос
/ 27 октября 2011

Я пытаюсь сделать отчет в виде дерева. Где я мог бы написать некоторый текст, чтобы иметь в качестве родительского узла, и при необходимости я бы добавил строки добавления в качестве подузлов для отображения дополнительной информации.

Я сделал объект отчета:

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

Тогда у меня была бы коллекция отчетов, которую я затем передавал бы в источник элементов древовидной структуры, но я понятия не имею, как создать привязки, чтобы он правильно создавал подузлы, я попытался выполнить поиск в Google, но не смог найти правильный путь.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

Вам необходимо использовать HierarchicalDataTemplate

<TreeView ItemsSource="{Binding Reports}">
    <TreeView.Resources>
        <HierarchicalDataTemplate DataType="{x:Type local:Report}" ItemsSource="{Binding Reports}">
            <TextBlock Text="{Binding Text}" />
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>
0 голосов
/ 27 октября 2011
<TreeView ItemsSource="{Binding ReportCollection}">
  <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Reports}">
      <TextBlock Text="{Binding Text}" />
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>
</TreeView>
...