子アイテムのコレクションをメニューアイテムに設定しようとしています。それは簡単でしたが、追加操作を行う余分なものを追加する必要があります。私はコンポジットコレクションを使用して、これを表示する必要がある既存のアイテムのコレクションに追加しました。ほとんど、MenuItemに複合コレクションの「倍増」を設定する
<MenuItem Header="Time Ranges" x:Name="TimeRangesMenuItem"
Background="{StaticResource TitleBarButtonBackgroundBrush}"
Margin="2">
<MenuItem.Resources>
<CollectionViewSource Source="{Binding ElementName=TimeRangesMenuItem, Path=DataContext.TimeSpans}" x:Key="TimeSpanMenuItems" />
</MenuItem.Resources>
<MenuItem.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource TimeSpanMenuItems}}" />
<Separator />
<MenuItem Header="Add New" cal:Message.Attach="NewTimeSpan()" />
</CompositeCollection>
</MenuItem.ItemsSource>
<MenuItem.ItemTemplate>
<ItemContainerTemplate>
<MenuItem Header="{Binding Name}" cal:Message.Attach="ConfigureTimeSpan()" />
</ItemContainerTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
それは動作します:
は、ここでは、コードです。私が表示しようとしているDataContext.TimeSpans ViewModelは、2つのMenuItemの中に入れ子になっているのではなく、ただ1つを取り込むのではなく、この奇妙な動作をします(これは単一のTimeSpanViewModel "Time Span"を持っています):
。 "内側" のMenuItem注意、あなたがそれを押すと、内側のものが機能している:
通常のMenuItem:
誰もがいずれかを持ってこれを修正する方法のアイデア?アイテムItemContainerTemplate
は何
Ah!もちろん。ありがとう、完璧に動作します。 – Joe
@ジョー:私はかなり間違いを犯したと確信しています。 –