Добавление стиля в HierarchicalDataTemplate сгенерированные MenuItems - PullRequest
2 голосов
/ 17 сентября 2009

Я добавляю свои иерархические данные в элемент управления меню с помощью HierarchicalDataTemplate.

<HierarchicalDataTemplate DataType="{x:Type local:MyType}" ItemsSource="{Binding Path=SubItems}">
    <StackPanel>
        <TextBlock Text="{Binding Name}"/>
    </StackPanel>
</HierarchicalDataTemplate>

Мое меню создано следующим образом

<Menu>
    <MenuItem ItemsSource="{Binding MyCollection}" Header="MainItem"></MenuItem>
</Menu>

Как добавить стиль к этим сгенерированным элементам меню, например, для установки свойства IsCheckable. Важно, чтобы главный MenuItem (заголовок с именем «MainItem» здесь) не применял этот стиль, поэтому его нельзя проверить.

Я пробовал несколько подходов, используя <Style> и <DataTemplate, но безуспешно.

1 Ответ

5 голосов
/ 17 сентября 2009

Как это:

<Menu>
    <Menu.ItemContainerStyle>
        <Style TargetType="MenuItem">
           ....
        </Style>
    </Menu.ItemContainerStyle>
</Menu>

Или в вашем случае:

<Menu>  
    <MenuItem Header="Text" ItemsSource="{Binding Data}" ItemContainerStyle="{SomeStyle}"/>  
</Menu>  
...