0

我正在尝试以这种方式绑定 Button 的上下文菜单:

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

(UserControl 具有 Values 属性)。

为什么这不起作用?但是,当我将此绑定放入其他控件时,<TextBlock Text='{Binding ...}'/>它可以正常工作。

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

4

1 回答 1

2

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

您可以做的是使用PlacementTargetContextMenu 的属性来获取 ContextMenu 附加到的父元素并从那里开始。

于 2012-10-29T17:23:21.813 回答