我在努力理解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的值。我希望這兩個例子的表現都一樣(即兩種工作或兩種都失敗)。