【问题标题】:Adding a style to HierarchicalDataTemplate generated MenuItems向 HierarchicalDataTemplate 生成的 MenuItems 添加样式
【发布时间】:2009-09-17 23:43:32
【问题描述】:

我正在使用 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>

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

我尝试了几种使用&lt;Style&gt;&lt;DataTemplate 的方法,但都没有成功。

【问题讨论】:

    标签: wpf xaml datatemplate hierarchicaldatatemplate


    【解决方案1】:

    像这样:

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

    或者在你的情况下:

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

    【讨论】:

    • 它适用于所有菜单项,而不仅仅是子项。我想为 HierarchicalDataTemplate “创建”的 MenuItems 设置样式,而不是菜单中的所有项目。
    • 就像你说的那样,它正在使用我在 ItemContainerStyle 中的样式的 StaticResource。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2012-07-07
    • 1970-01-01
    • 2018-05-15
    • 2015-08-05
    相关资源
    最近更新 更多