Je suis occupé à créer ma première application MVVM dans WPF. Fondamentalement, le problème que j'ai est que j'ai un TreeView (System.Windows.Controls.TreeView) que j'ai placé sur ma fenêtre WPF, j'ai décidé que je vais lier à une ReadOnlyCollection des éléments CommandViewModel, et ceux-ci Les éléments sont constitués d'une DisplayString, d'une balise et d'une RelayCommand.WPF: TreeViewItem lié à une ICommand
Maintenant dans le XAML, j'ai mon TreeView et j'ai lié avec succès mon ReadOnlyCollection à ceci. Je peux voir cela et tout semble bien dans l'interface utilisateur.
Le problème est maintenant que j'ai besoin de lier le RelayCommand à la commande du TreeViewItem, mais d'après ce que je peux voir le TreeViewItem n'a pas de commande. Est-ce que cela me force à le faire dans la propriété IsSelected ou même dans le code derrière la méthode TreeView_SelectedItemChanged ou y a-t-il un moyen de le faire par magie dans WPF?
C'est le code que j'ai:
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Commands"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True">
</TreeViewItem>
</TreeView.Items>
et idéalement j'aimerais aller juste:
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Trade"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True"
Command="{Binding Path=Command}">
</TreeViewItem>
</TreeView.Items>
Est-ce que quelqu'un a une solution qui me permet utiliser l'infrastructure RelayCommand que j'ai.
Merci les gars, très apprécié!
Richard
Je crois qu'avec l'arborescence ASP.NET vous pouvez étendre TreeView et TreeViewItem pour ajouter ce genre de fonctionnalité. Vous changeriez le TVI pour ajouter ce dont vous aviez besoin et ensuite remplacer une méthode dans le téléviseur pour créer une nouvelle instance de votre TVI. Je ne sais pas si le même modèle est disponible dans l'arborescence WPF; J'ai vérifié mais pas complètement. – Will