3
Рассмотрим следующую структуру данных:TreeView привязки проблемы в WPF
List<Person> People;
class Person {
List<Car> Cars;
List<Hobby> Hobbies;
}
Я хочу связать TreeView с этой структурой. И это должно выглядеть так:
People
> Frank
> Cars
> BMW
> Ford
> Hobbies
> Tennis
> Golf
> Jane
> Cars
> Hobbies
Как это можно достичь в XAML? Вот что у меня до сих пор:
<TreeView>
<TreeView.Resources>
<DataTemplate x:Key="PersonTemplate">
<TextBlock Header="{Binding Name}">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove" />
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
</TreeView.Resources>
<TreeViewItem Header="{Binding Name}"IsExpanded="True" >
<TreeViewItem Header="People"
ItemsSource="{Binding People}"
ItemTemplate="{StaticResource PersonTemplate}">
</TreeViewItem>
</TreeViewItem>
</TreeView>
Это прослеживание вопрос binding-a-treeview-with-contextmenu-in-xaml
Вы избили меня к этому :-) Это такая чистая абстракция презентации и данных (модель) -слой. Я фактически использовал пример Джоша в производственном коде, и он работает красиво. – bic
Я согласен, работая через этот конкретный образец, действительно заставил меня все щелкнуть. – gn22
Хорошо, это выглядит интересно. Завтра я буду читать дальше. Вы рекомендуете использовать ViewModel как: class PersonViewModel {object [] Items = {new CarsViewModel(), новый HobbiesViewModel()}? Таким образом, создавая ViewModel для каждого TreeViewItem, который я хочу отобразить? –