将样式添加到HierarchicalDataTemplate生成的MenuItems

app*_*rat 2 wpf xaml datatemplate hierarchicaldatatemplate

我正在使用HierarchicalDataTemplate将我的分层数据添加到Menu-Control.

<HierarchicalDataTemplate DataType="{x:Type local:MyType}" ItemsSource="{Binding Path=SubItems}">
    <StackPanel>
        <TextBlock Text="{Binding Name}"/>
    </StackPanel>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)

我的菜单是这样创建的

<Menu>
    <MenuItem ItemsSource="{Binding MyCollection}" Header="MainItem"></MenuItem>
</Menu>
Run Code Online (Sandbox Code Playgroud)

例如,如何为这些生成的MenuItem添加样式以设置IsCheckable属性.重要的是主MenuItem(此处名为"MainItem"的标题)不应用此样式,因此它不可检查.

我尝试了几种方法<Style>,<DataTemplate但没有成功.

gim*_*lay 5

像这样:

<Menu>
    <Menu.ItemContainerStyle>
        <Style TargetType="MenuItem">
           ....
        </Style>
    </Menu.ItemContainerStyle>
</Menu>
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下:

<Menu>  
    <MenuItem Header="Text" ItemsSource="{Binding Data}" ItemContainerStyle="{SomeStyle}"/>  
</Menu>  
Run Code Online (Sandbox Code Playgroud)