我遇到了一些麻烦,不知道如何在ContextMenu
上正确设置DataContext
。
我有一个视图模型的集合,是一个ItemsControl
的源。每个视图模型都有一个项目集合,这也是另一个ItemsControl
的源。每个项目都用于绘制具有ContextMenu
的图像。该ContextMenu
中的MenuItems
需要绑定到视图模型上的命令,但是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
设置为对应项目的父视图模型?