MenuItem の ItemsSource を ViewModel の ObservableCollection にバインドしています。ここに私のxamlがあります:
<MenuItem Header="_View"
ItemsSource="{Binding Windows}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header"
Value="{Binding Title}" />
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
この部分はうまく機能しますが、セパレータで区切られた同じ View MenuItem にいくつかの静的な MenuItem を追加したいと考えています。アイテムを2回設定できないため、これが機能しないことはわかっていますが、このようなものです。
<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>
今のところ、次のように MenuItem に別のレベルを追加して回避策を作成しました。
<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>
これは問題なく動作しますが、可能であればサブメニューを使用したくありません。ああ、コード ビハインドではなく xaml でこれを行うこともお勧めします。何か案は?