我正在创建我的第一个WPF MVVM应用程序。
基本上,我的问题是我在WPF窗口上放置了一个TreeView(System.Windows.Controls.TreeView),我决定将其绑定到CommandViewModel项的ReadOnlyCollection,这些项由DisplayString、Tag和RelayCommand组成。
现在,在XAML中,我已经成功地将ReadOnlyCollection绑定到了TreeView上。在UI中,我可以查看它并且一切看起来很好。
现在的问题是,我需要将RelayCommand绑定到TreeViewItem的Command上,但据我所知,TreeViewItem没有Command属性。这是否迫使我在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基础设施。
谢谢大家,非常感谢!
理查德
System.Windows.Interactivity
可以再分发吗? - AMissico