Я бы привязал меню к Коллекции, и чтобы различные пользовательские элементы управления изменяли Коллекцию при загрузке.
РЕДАКТИРОВАТЬ - Вот пример
Ваш главный вид будет содержать что-то вроде этого
<Menu ItemsSource="{Binding Path=CurrentUserControl.MenuItems}">
<Menu.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Header" Value="{Binding MenuItemText}" />
<Setter Property="Command" Value="{Binding MenuItemCommand}" />
<Setter Property="CommandParameter" Value="{Binding MenuItemCommandParameter}" />
</Style>
</Menu.Resources>
</Menu>
Хотя каждый элемент UserControl будет содержать свойство Collection элементов MenuItem, которые вы хотите отобразить
public class MenuItem
{
public string MenuItemText {get; set;}
public ICommand MenuItemCommand {get; set;}
public object MenuItemCommandParameter {get; set;}
}
...
public ObservableCollection<MenuItem> MenuItems;