Mam problem z ustaleniem poprawnego DataContext
na ContextMenu
.WPO ContextMenu Woes: Jak ustawić DataContext w ContextMenu?
Mam kolekcję modeli widoków, które są źródłem ItemsControl
. Każdy model widoku ma kolekcję przedmiotów, które są również źródłem innego ItemsControl
. Każdy element służy do rysowania obrazu o numerze ContextMenu
. MenuItems
w tym ContextMenu
trzeba powiązać z poleceniem w modelu widoku, ale PlacementTarget
z ContextMenu
wskazuje na pojedynczą pozycję.
My Xaml wygląda mniej więcej tak:
<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>
Jak mogę ustawić DataContext
z ContextMenu
do odpowiedniego widoku modelu nadrzędnego danego elementu?
Problem polega na tym, że nie chcą wiązać się co PlacementTarget jest. Chcę powiązać z DataContext zewnętrznej kontroli. –
Czy jesteś pewien, że nie mają tego samego Kontekstu danych (tj. OuterControl i inner itemsControl)? – kevindaub
Tak, DataContext, który uzyskuję za pomocą PlacementTarget, jest zbyt głęboki. Odzyskuję element, ale potrzebuję modelu widoku, który ma kolekcję zawierającą ten element. Gdybym mógł powiązać Kontekst danych zewnętrznej kontroli, byłoby to idealne. –