Как связать данные в TreeListView - PullRequest
0 голосов
/ 27 августа 2018

Я использую TreeListView из следующей статьи: https://blogs.msdn.microsoft.com/atc_avalon_team/2006/03/01/treelistview-show-hierarchy-data-with-details-in-columns/

Я не знаю, как установить свойства вне XAML. Допустим, у меня есть класс person с атрибутами lastName, firstName, gender, age, и у каждого человека должны быть дочерние элементы в качестве вложенных уровней. Как мне этого добиться?

1 Ответ

0 голосов
/ 27 августа 2018

Модель:

public class Person
{
    public Person(string name)
    {
        this.Name = name;
    }

    public string Name { get; set; }

    public ObservableCollection<Person> Childs { get; set; }
}

XAML:

<TreeView ItemsSource="{Binding Path=Persons}">
    <TreeView.Resources>               
        <HierarchicalDataTemplate DataType="{x:Type local:Person}" ItemsSource="{Binding Childs}">
            <TextBlock Text="{Binding Name}"/>
        </HierarchicalDataTemplate>
    </TreeView.Resources>
</TreeView>

Главное окно:

public partial class MainWindow : Window
{
    public MainWindow()
    {


        Persons = new ObservableCollection<Person>();
        Persons.Add(new Person("Name1"));
        Persons[0].Childs = new ObservableCollection<Person>();
        Persons[0].Childs.Add(new Person("Child1"));
        Persons[0].Childs.Add(new Person("Child2"));
        Persons[0].Childs[0].Childs = new ObservableCollection<Person>();
        Persons[0].Childs[0].Childs.Add(new Person("Child1 Child2"));



        InitializeComponent();

        this.DataContext = this;
    }

    public ObservableCollection<Person> Persons { get; private set; }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...