J'ai un MenuItem
qui crée ses sous-éléments de menu de façon dynamique à partir de la propriété ItemsSource
.Style optique WPF de MenuItem-Separator créé dynamiquement dans MVVM
Pour le regroupement, j'ai des séparateurs dans le menu. Le séparateur est créé pour chaque entrée null dans la collection ItemsSource par un ControlTemplate du MenuItem.ItemContainerStyle
.
Cela fonctionne bien, mais le séparateur n'a pas le même style optique que les autres séparateurs qui sont placés dans la collection Items d'un menu.
Existe-t-il un moyen de modifier l'aspect du séparateur de sorte qu'il semble égal aux séparateurs d'éléments de menu "normaux"?
Voici le code que j'utilise:
<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>
Merci pour la réponse. C'est une bonne idée mais malheureusement cela n'aide pas. Le séparateur a l'air égal mais possède en plus un objet MenuItem qui est sélectionnable (ce qui rend le séparateur sélectionnable à la fin, s'il n'est pas désactivé). – HCL