如何将命令绑定到DataTemplate中的ContextMenu

我有点迷失绑定。 我在最后一小时尝试了很多东西,我不能列举所有这些东西。 我在DataTemplate中遇到了contextMenu的问题。

解释一下:我有一个UserControl 。 它的dataContext本身就是。 在这个UserControl ,我有一个ItemsControl来表示超链接列表。 我的ItemsControl itemsSource被绑定(它由对象元素组成)。 我重新定义了ItemsControl.ItemTemplate 。 在里面,我创建了一个HyperLink, TextBlock作为子项使其工作,在这个TextBlock ,我通过执行以下操作设置了ContextMenu

         

所以我有

 UserControl --> ItemsControl --> ItemTemplate --> HyperLink --> TextBlock --> ContextMenu --> ContextMenuItem 

我知道我的第一个相对来源不起作用,我有一个绑定错误。 我想要的是绑定我的UserContorl datacontext,它具有这些命令。

我该怎么办?

谢谢

ContextMenu采用ItemsControl的DataContext,因此无法直接访问ViewModel。 它也不是VisualTree的一部分,所以你不能做RelativeSource绑定。 所以我们需要通过TextBlock的Tag属性获取UserControl的DataContext,然后绑定到ContextMenu。 您可以参考以下代码。