.net 如何绑定WPF上下文菜单项资源?

.net 如何绑定WPF上下文菜单项资源?,.net,wpf,xaml,data-binding,itemssource,.net,Wpf,Xaml,Data Binding,Itemssource,我试图通过以下方式绑定Button的上下文菜单: <Button.ContextMenu> <ContextMenu ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=Values}"/> </Button.ContextMenu> (UserControl具有Values属性) 为什么这样不行? 但是,当我将此绑定放入其他控件

我试图通过以下方式绑定Button的上下文菜单:

<Button.ContextMenu>
    <ContextMenu ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=Values}"/>
</Button.ContextMenu>

(UserControl具有Values属性)

为什么这样不行? 但是,当我将此绑定放入其他控件(如
)时,它工作正常


另一个问题,如何调试WPF中的绑定问题?

它不起作用,因为ContextMenu不是可视或逻辑树的一部分,因此它不会以与其他控件相同的方式继承
DataContext
。它不是你控制的孩子

您可以使用ContextMenu的
PlacementTarget
属性来获取ContextMenu附加到的父元素,然后从那里开始