【发布时间】:2011-06-22 17:50:06
【问题描述】:
我很难理解 ContextMenu 发生了什么。我知道它被渲染为一个单独的窗口,带有一个单独的可视化树,所以我们不能使用相对绑定来绑定作为用户控件属性公开的命令。例如以下不起作用:
<MenuItem Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=TestCommand}" Header="Test" />
但是,如果您将用户控件的数据上下文设置为将命令作为属性公开的视图模型,则以下操作将起作用:
<MenuItem Command="{Binding TestCommand}" Header="Test" />
我不明白的是,如果 ContextMenu 不是可视化树的一部分,它是如何继承 DataContext 的值的。我希望这两个示例的行为相同(即都工作或都失败)。
【问题讨论】:
标签: wpf data-binding command contextmenu