2010-09-09 24 views
7

我有一个MenuItem,它从ItemsSource属性动态创建子菜单项。MVVM中的动态创建MenuItem分隔符的WPF光学样式

对于分组,我在菜单中有分隔符。通过MenuItem.ItemContainerStyle的ControlTemplate为ItemsSource集合中的每个空条目创建分隔符。

这可以正常工作,但是分隔符与其他分隔符的光学风格不同,它们放置在菜单的Items-collection中。

有没有办法改变分隔符的外观,使它看起来等于“正常”的菜单项分隔符?

这里是我使用的代码:

<MenuItem.ItemContainerStyle> 
    <Style TargetType="MenuItem"> 
    <Setter Property="Header" Value="{Binding Title}"/> 
    <Setter Property="Command" Value="{Binding Command}"/> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding }" Value="{x:Null}"> 
      <Setter Property="Template" > 
       <Setter.Value> 
        <ControlTemplate> 
         <Separator /> <!-- THIS SEPARATOR IS NOT SHOWN AS COMMON MENUITEM-SEPARATORS ARE --> 
        </ControlTemplate>           
       </Setter.Value> 
      </Setter> 
     </DataTrigger>        
    </Style.Triggers> 
    </Style> 
</MenuItem.ItemContainerStyle> 

回答

0

尝试包裹分隔符在菜单项

<ControlTemplate> 
    <MenuItem> 
    <MenuItem.Header> 
     <Separator /> 
    </MenuItem.Header> 
    </MenuItem> 
</ControlTemplate> 
+0

感谢您的回答。这是一个好主意,但遗憾的是,这并没有帮助。分隔符看起来相同,但是另外还有一个可选择的MenuItem(如果不禁用,最终可以选择分隔符)。 – HCL 2010-09-09 09:58:17