Я бы управлял своими меню в ViewModels, а не в XAML. Моя ViewModel будет отвечать за возврат коллекции, которая объединяет как стандартную коллекцию меню, так и пользовательскую коллекцию UserCollection.
Обычно я разделяю элементы со значением null
и использую DataTrigger, чтобы нарисовать шаблон как разделитель, если элемент нулевой.
Примерно так:
myMenu.AddRange(UserMenu);
myMenu.Add(null);
myMenu.AddRange(StandardMenu);
и XAML ...
<ContextMenu ItemsSource="{Binding MyMenu}">
<ContextMenu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Template"
Value="{StaticResource MyMenuItemTemplate}" />
<Style.Triggers>
<DataTrigger Binding="{Binding }" Value="{x:Null}">
<Setter Property="Template"
Value="{StaticResource MySeparatorTemplate}" />
</DataTrigger>
</Style.Resources>
</Style>
</ContextMenu.Resources>
</ContextMenu>