ContextMenu에서 어떤 일이 벌어지고 있는지 이해하기가 어렵습니다. 별도의 비주얼 트리가있는 별개의 윈도우로 렌더링된다는 것을 알고 있으므로 상대 바인딩을 사용하여 사용자 정의 컨트롤의 속성으로 노출 된 명령을 바인딩 할 수 없습니다. 예 : 당신은 속성으로 명령을 노출하는 뷰 모델에 사용자 컨트롤의 데이터 컨텍스트를 설정하는 경우, 다음이 작동,WPF ContextMenu 바인딩 MenuItem을 UserControl 속성 대 ViewModel 속성
<MenuItem Command="{Binding RelativeSource={RelativeSource AncestorType=UserControl}, Path=TestCommand}" Header="Test" />
:하지만
<MenuItem Command="{Binding TestCommand}" Header="Test" />
다음
하지 작업을 수행
내가 이해할 수없는 것은 ContextMenu가 비주얼 트리의 일부가 아닌 경우 DataContext의 값을 어떻게 상속 받는지입니다. 이 두 예제가 모두 동일하게 작동 할 것으로 기대합니다 (즉, 둘 다 작동하거나 모두 실패 함).