Я бы хотел избежать необходимости создавать меню вручную в XAML или коде, связываясь со списком ICommand
-приобретенных объектов. Однако у меня возникла небольшая проблема, когда в результирующем меню есть два уровня пунктов меню (то есть каждый MenuItem
содержится в MenuItem
):
альтернативный текст http://i47.tinypic.com/j63lg2.png
Я предполагаю, что это происходит потому, что WPF автоматически генерирует MenuItem
для моей привязки, но "просмотрщик", который я использую, на самом деле уже равен a MenuItem
(он получен из 1013 *):
<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
?