将样式添加到HierarchicalDataTemplate生成的MenuItems

时间:2009-09-17 14:57:33

标签: wpf xaml datatemplate hierarchicaldatatemplate

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

<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>

如何为这些生成的MenuItem添加样式以设置IsCheckable属性。重要的是主MenuItem(此处名为“MainItem”的标题)不应用此样式,因此无法检查。

我尝试过使用<Style><DataTemplate的几种方法但没有成功。

1 个答案:

答案 0 :(得分:5)

像这样:

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

或者在你的情况下:

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