WPF: TreeViewItem an einen ICommand gebunden

Ich bin gerade dabei, meine erste MVVM-Anwendung in WPF zu erstellen.

Grundsätzlich habe ich das Problem, dass ich eine TreeView (System.Windows.Controls.TreeView) habe, die ich in meinem WPF-Fenster platziert habe. Ich habe beschlossen, dass ich an eine ReadOnlyCollection von CommandViewModel-Elementen binden werde, und diese Elemente bestehen aus einem DisplayString, Tag und ein RelayCommand.

Jetzt in der XAML habe ich mein TreeView und ich habe meine ReadOnlyCollection erfolgreich daran gebunden. Ich kann das sehen und alles sieht in der Benutzeroberfläche gut aus.

Das Problem besteht nun darin, dass ich den RelayCommand an den Befehl des TreeViewItem binden muss, aber soweit ich das TreeViewItem sehen kann, hat es keinen Befehl. Zwingt mich dies, dies in der IsSelected-Eigenschaft oder sogar im Code hinter der TreeView_SelectedItemChanged-Methode zu tun, oder gibt es eine Möglichkeit, dies in WPF auf magische Weise zu tun?

Dies ist der Code, den ich habe:

<TreeView BorderBrush="{x:Null}" 
      HorizontalAlignment="Stretch" 
      VerticalAlignment="Stretch">
<TreeView.Items>
    <TreeViewItem
        Header="New Commands"
        ItemsSource="{Binding Commands}"
        DisplayMemberPath="DisplayName"
        IsExpanded="True">
    </TreeViewItem>
</TreeView.Items>

und im Idealfall würde ich gerne einfach gehen:

<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>

Hat jemand eine Lösung, mit der ich die vorhandene RelayCommand-Infrastruktur nutzen kann?

Vielen Dank Jungs, sehr geschätzt!

Richard

Antworten auf die Frage(5)

Ihre Antwort auf die Frage