TreeView
データ テンプレートを使用してコレクションを wpf コントロールにバインドしようとしています。コレクション内の各アイテム (Person) には、タイプが car と book の 2 つの異なるコレクション (Cars、Books) も含まれています。
スペースを節約するために関係するオブジェクトの簡単なリストを次に示します。
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
この記号 >
はツリー フォルダを示すために使用され、テンプレートでは考慮されません。