我在努力理解ContextMenu发生了什么。我知道它是作为一个单独的窗口呈现的,并带有一个单独的可视化树,所以我们不能使用相对绑定来绑定作为用户控件属性公开的命令。例如以下不工作:将WPF ContextMenu MenuItem绑定到UserControl属性vs ViewModel属性
<MenuItem Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=TestCommand}" Header="Test" />
但是,如果你设置的用户控件,它公开命令属性视图模型的数据背景下,下面的工作:
<MenuItem Command="{Binding TestCommand}" Header="Test" />
我不明白的是,如果ContextMenu不是可视树的一部分,ContextMenu如何继承DataContext的值。我希望这两个例子的表现都一样(即两种工作或两种都失败)。