Динамическая привязка к командам ViewModel в Window's MenuItem

Работая над 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:

Current Appearance

Desired Appearance:

Desired Appearance

5
задан H.B. 27 May 2011 в 15:52
поделиться