ContextMenu
에 올바른 DataContext
을 설정하는 방법을 알아 내는데 문제가 있습니다.WPF ContextMenu Woes : ContextMenu의 DataContext를 어떻게 설정합니까?
나는 ItemsControl
의 출처 인 뷰 모델 모음을 가지고 있습니다. 각보기 모델에는 다른 ItemsControl
의 원본이기도 한 항목 모음이 있습니다. 각 항목은 ContextMenu
인 이미지를 그리는 데 사용됩니다. 에서 ContextMenu
은보기 모델의 명령에 바인딩해야하지만 ContextMenu
의 PlacementTarget
은 개별 항목을 가리 킵니다.
내 XAML 다음과 같은 :
<ItemsControl ItemsSource="{Binding Markers"}>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image>
<Image.ContextMenu>
<ContextMenu>
<MenuItem Header="Edit" Command="{Binding EditCommand}" />
</ContextMenu>
</Image.ContextMenu>
</Image>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
어떻게 항목의 해당 부모 뷰 모델에 ContextMenu
의 DataContext
을 설정할 수 있습니까?
이 내가 PlacementTarget이 무엇인지에 바인딩하지 않을 것입니다 함께 문제. 외부 컨트롤의 DataContext에 바인딩하고 싶습니다. –
그들은 동일한 DataContext (즉, outerControl 및 내부 itemsControl)를 가지고 있지 않습니까? – kevindaub
예, PlacementTarget을 사용하여 얻은 DataContext는 너무 깊은 수준입니다. 항목을 다시 가져 오지만 필요한 항목은 해당 항목이 포함 된 컬렉션이있는보기 모델입니다. 외부 컨트롤의 DataContext에 바인딩 할 수 있다면 완벽 할 것입니다. –