Я изо всех сил пытаюсь понять, что происходит с ContextMenu.Я знаю, что оно отображается как отдельное окно с отдельным визуальным деревом, поэтому мы не можем использовать относительное связывание для привязки команды, представленной как свойство пользовательского элемента управления.например, следующее не работает:
<MenuItem Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=TestCommand}" Header="Test" />
Но если вы установите контекст данных пользовательского элемента управления для модели представления, которая представляет команду как свойство, будет работать:
<MenuItem Command="{Binding TestCommand}" Header="Test" />
Я не понимаю, как ContextMenu наследует значение DataContext, если оно не является частью визуального дерева.Я ожидаю, что оба эти примера будут вести себя одинаково (т.е. оба сработают или оба сбоят).