WPF TreeView HierarchicalDataTemplate - привязка к объекту с различными дочерними коллекциями

Я пытаюсь привязать коллекцию к wpfTreeView контроль с использованием шаблонов данных. Каждый элемент (Персона) в коллекции также содержит две разные коллекции (Автомобили, Книги) типа автомобиль и книга.

Вот упрощенный список объектов, задействованных для экономии места.

public class Person
{
  public string Name
  public List<Book> Books;
  public List<Car> Cars;
}

public class Book
{
  public string Title
  public string Author
}

public class Car
{
  public string Manufacturer;
  public string Model;
}

Вот как я связываю

    public MainWindow()
    {
        InitializeComponent();

        this.treeView1.ItemsSource = this.PersonList();
    }

    public List<Person> PersonList()
    {
        List<Person> list = new List<Person>();


        Book eco = new Book { Title = "Economics 101", Author = "Adam Smith"};
        Book design = new Book { Title = "Web Design", Author = "Robins" };

        Car corola = new Car { Manufacturer = "Toyota", Model = "2005 Corola"};
        Car ford = new Car { Manufacturer = "Ford", Model = "2008 Focus"};

        Person john = new Person { Name = "John", Books = new ObservableCollection<Book> { eco, design }, Cars = new ObservableCollection<Car> { corola } };

        Person smith = new Person { Name = "Smith", Books = new ObservableCollection<Book> { eco, design }, Cars = new ObservableCollection<Car> { ford } };

        list.AddRange(new[] {john, smith });
        return list;
    }

Вот код Xaml

<Grid>
    <TreeView  Name="treeView1">
    </TreeView>
</Grid>

Я смотрю на отображение дерева, чтобы оно выглядело так.

>John
  >Books
    Economics 101 : Adam Smith
    Web Design    : Robins
  >Cars
    Totota : 2005 Corola
>Smith
  >Books
    Economics 101 : Adam Smith
    Web Design    : Robins
  >Cars
    Ford: 2008 Focus

этот знак> используется для отображения папки дерева и не должна учитываться в шаблоне.

Ответы на вопрос(3)

Ваш ответ на вопрос