Wpf 填充菜单时如何使用ItemContainerTemplates?
我最近花了太长时间试图弄清楚如何使用菜单上的ItemContainerTemplate和UsesItemContainerTemplate属性 基本上,我的问题是,无论我做了什么,它似乎都没有抓住模板Wpf 填充菜单时如何使用ItemContainerTemplates?,wpf,menu,datatemplate,Wpf,Menu,Datatemplate,我最近花了太长时间试图弄清楚如何使用菜单上的ItemContainerTemplate和UsesItemContainerTemplate属性 基本上,我的问题是,无论我做了什么,它似乎都没有抓住模板 <Menu Grid.Row="1" ItemsSource="{Binding MenuItems}" UsesItemContainerTemplate="True"> <Menu.Resources> <ItemContainerTemp
<Menu Grid.Row="1" ItemsSource="{Binding MenuItems}" UsesItemContainerTemplate="True">
<Menu.Resources>
<ItemContainerTemplate DataType="{x:Type vm:SeparatorViewModel}">
<Separator />
</ItemContainerTemplate>
<ItemContainerTemplate DataType="{x:Type vm:ActionItemViewModel}">
<MenuItem Header="{Binding Path=Caption}" ItemsSource="{Binding SubItems}" />
</ItemContainerTemplate>
</Menu.Resources>
</Menu>
它将始终使用MenuItem作为容器
但是为什么呢?解决方案当然非常简单。MenuItem模板的UsesItemContainerTemplate属性也必须设置为true
<Menu Grid.Row="1" ItemsSource="{Binding MenuItems}" UsesItemContainerTemplate="True">
<Menu.Resources>
<ItemContainerTemplate DataType="{x:Type vm:SeparatorViewModel}">
<Separator />
</ItemContainerTemplate>
<ItemContainerTemplate DataType="{x:Type vm:ActionItemViewModel}">
<MenuItem **UsesItemContainerTemplate="True"** Header="{Binding Path=Caption}" ItemsSource="{Binding SubItems}" />
</ItemContainerTemplate>
</Menu.Resources>
</Menu>
我希望这可以避免其他人花时间去拉扯他们可能已经消退的发际线
顺便说一句,我无法正确地用“ItemContainerTemplate”和“UsesItemContainerTemplate”标记它,因为我的声誉显然太低了,所以如果有人能做到这一点,那就太好了
Adios.我假设添加UseItemContainerTemplate只适用于有子项的情况,对吗?