我正忙着在 WPF 中创建我的第一个 MVVM 应用程序。
基本上我遇到的问题是我有一个 TreeView (System.Windows.Controls.TreeView),我已经将它放在我的 WPF 窗口上,我决定我将绑定到 CommandViewModel 项目的 ReadOnlyCollection,这些项目由一个DisplayString、Tag 和一个 RelayCommand。
现在在 XAML 中,我有我的 TreeView 并且我已经成功地将我的 ReadOnlyCollection 绑定到这个。我可以查看它,并且 UI 中的一切看起来都很好。
现在的问题是我需要将 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 基础设施的解决方案。
谢谢各位,非常感谢!
理查德