我有一个treeView,其itemsource是我的Model类的集合。 我在treeView上添加了一个上下文菜单。由于contextMenu的命令应该在可视树中,所以我不得不将它们放在我的Model类中。哪个错误(将模型绑定到目录)。
如何将我的上下文菜单命令绑定到我的ViewModel而不是Model?
由于
答案 0 :(得分:5)
您无需在模型中放置命令。在这里,您可以在ViewModel中访问您的命令,如下所示:
这里Tag
将包含Binding to ViewModel,可用于访问命令。
<TreeView Tag="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem Header="MyCommand"
CommandParameter="{Binding }"
Command="{Binding Path=PlacementTarget.Tag.DataContext.MyCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ContextMenu}}"/>
</ContextMenu>
</TreeView.ContextMenu>
</TreeView>