我想避免必須在XAML或代碼手工創建一個菜單,通過結合到ICommand
衍生的對象的列表。但是,我遇到了一下,其中出現的菜單中有菜單項目兩個層面的問題(即每個MenuItem
包含在MenuItem
):麻煩WPF菜單結合的ItemsSource
alt text http://i47.tinypic.com/j63lg2.png
我的猜測是,這是因爲發生WPF自動生成我結合MenuItem
,但「瀏覽器」我使用其實已經是一個MenuItem
(它是從MenuItem
派生):
<ContextMenu
x:Name="selectionContextMenu"
ItemsSource="{Binding Source={x:Static OrangeNote:Note.MultiCommands}}"
ItemContainerStyleSelector="{StaticResource separatorStyleSelector}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<Viewers:NoteCommandMenuItemViewer
CommandParameter="{Binding Source={x:Static OrangeNote:App.Screen}, Path=SelectedNotes}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
(該ItemContainerStyleSelector是http://bea.stollnitz.com/blog/?p=23,這讓我有我的綁定源裏面Separator
元素。)
所以,菜單必然的ICommand
個集合,每個項目的CommandParameter
被設置爲相同的全球目標(這恰好是一個集合,但那不重要)。
我的問題是,有沒有我可以綁定這使得WPF不會自動在MenuItem
包裝每個項目什麼辦法?
謝謝,這是一個更簡單的解決方案! – devios1 2010-06-12 14:07:34