将上下文菜单命令绑定到ViewModel,该命令不在上下文Visuals树中

WAQ*_*WAQ 0 wpf xaml contextmenu mvvm

我有一个treeView,其itemsource是我的Model类的集合.我在treeView上添加了一个上下文菜单.由于contextMenu的命令应该在可视树中,所以我不得不将它们放在我的Model类中.哪个错误(将模型绑定到目录).

如何将我的上下文菜单的命令绑定到我的ViewModel而不是Model?

谢谢

Nit*_*tin 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>
Run Code Online (Sandbox Code Playgroud)