Ho uno MenuItem
che crea dinamicamente le sue voci di sottomenu dalla proprietà ItemsSource
.Stile ottico WPF di MenuItem-Separator dinamicamente creato in MVVM
Per il raggruppamento, nel menu sono presenti Separatori. Il separatore viene creato per ogni voce nulla nella collezione ItemsSource da un ControlTemplate dello MenuItem.ItemContainerStyle
.
Questo funziona correttamente, tuttavia il separatore non ha lo stesso stile ottico degli altri separatori che sono inseriti in una raccolta di elementi di un menu.
C'è un modo per modificare l'aspetto del separatore in modo che assomigli ai "normali" menu-elementi-separatori?
ecco il codice che uso:
<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>
Grazie per la risposta. È una buona idea, ma purtroppo non aiuta. Il separatore sembra uguale ma ha come elemento aggiuntivo un MenuItem che è selezionabile (ciò che rende il separatore selezionabile alla fine, se non disabilitato). – HCL