3
Considérons la structure de données suivantes:TreeView dans la liaison question WPF
List<Person> People;
class Person {
List<Car> Cars;
List<Hobby> Hobbies;
}
Je veux lier un TreeView à cette structure. Et il devrait ressembler à ceci:
People
> Frank
> Cars
> BMW
> Ford
> Hobbies
> Tennis
> Golf
> Jane
> Cars
> Hobbies
Comment cela peut-il être réalisé en XAML? Voici ce que j'ai jusqu'à présent:
<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>
C'est une question de suivi à binding-a-treeview-with-contextmenu-in-xaml
Tu m'as battu :-) C'est une abstraction si propre de la présentation et de la couche de données (Model). J'ai effectivement utilisé l'exemple de Josh dans le code de production et cela fonctionne magnifiquement. – bic
Je suis d'accord, en travaillant à travers cet échantillon spécifique vraiment fait tout cliqué pour moi. – gn22
Ok, ça a l'air intéressant. Je vais faire d'autres lectures demain. Recommandez-vous d'utiliser un ViewModel comme: class PersonViewModel {object [] Items = {nouveau CarsViewModel(), new HobbiesViewModel()}? Donc créer un ViewModel pour chaque TreeViewItem que je veux afficher? –