Я занят созданием моего первого приложения MVVM в WPF.
В основном проблема, с которой я сталкиваюсь, состоит в том, что у меня есть TreeView (System.Windows.Controls.TreeView), который я поместил в свое окно WPF. Я решил, что я буду привязывать к ReadOnlyCollection элементов CommandViewModel и этих элементов состоят из DisplayString, Tag и RelayCommand.
Теперь в XAML у меня есть TreeView, и я успешно привязал свою коллекцию ReadOnlyCollection к этому. Я могу просмотреть это, и все выглядит хорошо в пользовательском интерфейсе.
Проблема теперь в том, что мне нужно связать RelayCommand с Командой TreeViewItem, однако из того, что я вижу, TreeViewItem не имеет Команды. Это заставляет меня делать это в свойстве IsSelected или даже в коде метода TreeView_SelectedItemChanged, или есть способ сделать это волшебным образом в WPF?
Это код, который у меня есть:
<TreeView BorderBrush="{x:Null}"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
<TreeView.Items>
<TreeViewItem
Header="New Commands"
ItemsSource="{Binding Commands}"
DisplayMemberPath="DisplayName"
IsExpanded="True">
</TreeViewItem>
</TreeView.Items>
и в идеале я хотел бы просто пойти:
<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>
Есть ли у кого-нибудь решение, позволяющее мне использовать имеющуюся у меня инфраструктуру RelayCommand.
Спасибо, ребята, очень ценю!
Richard