我在計算如何在ContextMenu
上設置正確的DataContext
時遇到了一些問題。WPF ContextMenu困境:如何設置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。 – 2013-02-22 21:48:45
你確定它們沒有相同的DataContext(即outerControl和inner itemsControl)嗎? – kevindaub 2013-02-22 21:51:08
是的,我使用PlacementTarget獲得的DataContext是一個太深的級別。我找回了一個項目,但我需要的是具有包含該項目的集合的視圖模型。如果我可以綁定到外部控件的DataContext,那將是完美的。 – 2013-02-22 21:55:06