Работая над WPF приложением, используя структуру MVVM.
My Window отображает меню и текущую ViewModel. На одном из MenuItems MenuItems я хочу перечислить некоторые команды, найденные в текущей ViewModel. Команды, перечисленные в Menu, будут меняться в зависимости от ViewModel.
У меня это отлично работает, но стиль запутался - команды MenuItems находятся внутри другого меню или что-то в этом роде. Прикреплю скриншот.
Я обернул объекты ViewModel's ICommand (RelayCommands, в данном случае) в CommandViewModel, которые раскрывают строку Command и Display, которую я хочу видеть в меню. Эти CommandViewModels находятся в списке: CurrentWorkspace.AdditionalOptionsCommands
.
Вот XAML для меню. Как я уже говорил, он работает, показывает нужные элементы и команды выполняются. Отображение просто некорректное - кто-нибудь может мне сказать зачем и как это исправить? Смотрите скриншот.
<Menu>
<MenuItem Header="_Additional Options..." ItemsSource="{Binding Path=CurrentWorkspace.AdditionalOptionsCommands}">
<MenuItem.ItemTemplate>
<DataTemplate DataType="{x:Type vm:CommandViewModel}">
<MenuItem Header="{Binding Path=DisplayText}" Command="{Binding Path=Command}"/>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
<MenuItem Header="_Testing">
<MenuItem Header="This looks right" />
<MenuItem Header="This looks right" />
</MenuItem>
</Menu>
Current Appearance:
Desired Appearance: