.net 在WPF功能区应用程序菜单中使用DataTemplate时,将显示其他嵌套级别
我正在使用Microsoft提供的 问题在于,当我使用数据模板填充.net 在WPF功能区应用程序菜单中使用DataTemplate时,将显示其他嵌套级别,.net,wpf,datatemplate,ribbon,.net,Wpf,Datatemplate,Ribbon,我正在使用Microsoft提供的 问题在于,当我使用数据模板填充RibbonaApplicationsPlitMenuItem时,我得到了一个我认为不应该存在的额外嵌套级别 以下是相关的WPF代码: <Window.Resources> <DataTemplate DataType="{x:Type cfg:PluginInfoConfigurationElement}" x:Key="GotoPluginAppMenuItem"> <ri
RibbonaApplicationsPlitMenuItem
时,我得到了一个我认为不应该存在的额外嵌套级别
以下是相关的WPF代码:
<Window.Resources>
<DataTemplate DataType="{x:Type cfg:PluginInfoConfigurationElement}" x:Key="GotoPluginAppMenuItem">
<ribbon:RibbonApplicationMenuItem
Header="{Binding Path=Key}"
ImageSource="{Binding Path=Image}"/>
</DataTemplate>
</Window.Resources>
<ribbon:RibbonApplicationMenu>
<ribbon:RibbonApplicationSplitMenuItem x:Name="LoadPluginMenuItem"
ItemsSource="{Binding Source={StaticResource NlpModel}, Path=AvailablePlugins}"
Header="Plugins"
ItemTemplate="{StaticResource GotoPluginAppMenuItem}">
</ribbon:RibbonApplicationSplitMenuItem>
<ribbon:RibbonApplicationSplitMenuItem x:Name="LoadPluginMenuItem2"
Header="Plugins">
<ribbon:RibbonApplicationMenuItem
Header="FooPlugin"
ImageSource="Images/icon-32.png"/>
<ribbon:RibbonApplicationMenuItem
Header="Invalid"
ImageSource="Images/icon-32.png"/>
</ribbon:RibbonApplicationSplitMenuItem>
<!-- Other items to fill the menu -->
</ribbon:RibbonApplicationMenu>
下面是我得到的:
使用数据模板
没有模板
如您所见,当使用DataTemplate时,会出现一个额外的嵌套级别。如何防止这种情况发生?您需要设置
ItemContainerStyle
,而不是设置ItemTemplate
,否则您将在功能区:RibbonApplicationMenuItem
内设置一个功能区:RibbonApplicationMenuItem
让·霍米纳尔:
下面是我使用的代码,它实现了我想要的结果:
<Style TargetType="{x:Type ribbon:RibbonApplicationMenuItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ribbon:RibbonApplicationMenuItem Header="{Binding Path=Caption}"
ImageSource="{Binding Path=Image}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我希望您不会介意我根据您的回答添加我编写的代码。