Se il menu di scelta rapida è "hardcoded" in xaml, è facile aggiungere sottomenu. Ad esempio:Sottomenu WPF per menu di scelta rapida
<ContextMenu>
<MenuItem Header="Comm1" Command="{Binding Blabla1}">
<MenuItem Header="SubComm1" Command="{Binding Blabla2}"></MenuItem>
</MenuItem>
<MenuItem Command="Comm2"></MenuItem>
<MenuItem Command="Comm3"></MenuItem>
</ContextMenu>
Ciò significa, che la ContextMenu ha tre elementi (Comm1, Comm2 e Comm3) e Comm1 ha sottomenu SubComm1.
Ho fatto il mio ContextMenu un po 'più flessibile:
<ContextMenu ItemsSource="{Binding ContextMenuItemsSource}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding ContextMenuCommandHeader}"></Setter>
<Setter Property="Command" Value="{Binding ContextMenuCommand}"></Setter>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
Fondamentalmente io può avere qualsiasi numero di elementi in ContextMenu, e ogni elemento può avere qualsiasi comando. Come posso aggiungere un sottomenu all'elemento ContextMenu?
Associare la struttura dati dell'albero a ItemsSource e utilizzare Convertitore che converte i dati in MenuItems. –