2010-09-09 64 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