Impegno l'elemento ItemsSource del mio MenuItem su ObservableCollection nel mio ViewModel. Qui è la mia XAML:Come legare e aggiungere staticamente MenuItems in modo dinamico?
<MenuItem Header="_View"
ItemsSource="{Binding Windows}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header"
Value="{Binding Title}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
Questa parte funziona grande, ma ora voglio anche aggiungere alcuni MenuItems statico alla stessa vista MenuItem, separati da un separatore. Qualcosa di simile, anche se so che questo non funzionerà perché non posso impostare gli elementi due volte.
<MenuItem Header="_View"
ItemsSource="{Binding Windows}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header"
Value="{Binding Title}" />
</Style>
</MenuItem.ItemContainerStyle>
<Separator />
<MenuItem Header="item 1" />
<MenuItem Header="item 2" />
</MenuItem>
Per ora ho creato un lavoro in giro con l'aggiunta di un altro livello al MenuItem in questo modo:
<MenuItem Header="_View">
<MenuItem Header="Windows"
ItemsSource="{Binding Windows}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header"
Value="{Binding Title}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
<MenuItem Header="Load Layout" />
<MenuItem Header="Save Layout" />
</MenuItem>
Questo funziona bene, ma io preferirei non avere un sottomenu, se possibile . Oh, e preferirei farlo in xaml invece che nel codice. Qualche idea?
forse è possibile utilizzare CompositeCollection a "unificare" la vostra raccolta dalla VM con la tua collezione definita XAML. –