0

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

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

谢谢

4

1 回答 1

5

您不需要在模型中放置命令。在这里,您可以访问 ViewModel 中的命令,如下所示: 这里Tag将包含与 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>
于 2013-09-17T04:38:08.063 回答