Структура имеет вид:
public class MenuCommand
{
Привязка коллекции таких элементов в лоб к ItemsSourse у Menu не работает. Точнее работает, и даже показывает пункты меню первого уровня, но пункты содержащие подпункты содержат стрелочку для открытия в право (но, кстати, не открываются). Единственное решение, которое смог придумать быстро, вот такое:////// Команда которую необходимо выполнить при выборе данного элемент /// private DelegateCommand _command; public ICommand Command { get { return _command; } } /// /// Заголовок команды (отображается в списке) /// public string Title { get; set; } /// /// Подпункты меню /// public List<MenuCommand> Children { get; set; } }
1. Создаем стиль.
<Style x:Key="menuItemStyle"> <Setter Property="MenuItem.Header" Value="{Binding Path=Title}"/> <Setter Property="MenuItem.ItemsSource" Value="{Binding Path=Children}"/> <Setter Property="MenuItem.Command" Value="{Binding Path=Command}"/> Style> 2. Создаем. как это не прискорбно 1 статический пункт меню. У которого и осуществляем привязку коллекции.<Menu> <MenuItem ToolTip="Меню" ItemsSource="{Binding Commands}" ItemContainerStyle="{StaticResource menuItemStyle}"> <MenuItem.Header> <Image Source="/Images/image.jpg" /> MenuItem.Header> MenuItem> Menu>Ну вот собственно и все. Заработало.
Комментариев нет:
Отправить комментарий