Я пытаюсь заполнить элемент меню коллекцией детских предметов. Это было легко, однако мне нужно добавить дополнительный, который всегда присутствует, который выполняет операцию «добавить». Я использовал составную коллекцию, чтобы добавить это в существующий набор элементов, которые необходимо отобразить.Population 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, который я пытаюсь отобразить, «вложен» внутри двух MenuItems, а не просто заполняет его, поэтому я получаю это странное поведение (у этого есть только один TimeSpanViewModel «Time Span»:
Мышь за пределами . "внутренний" MenuItem Обратите внимание, внутренний один функционален, если нажать его:
Нормальный MenuItem:
Каждый получил какой-либо идеи о том, как это исправить?
Ах! Конечно. Спасибо, отлично работает. – Joe
@ Joe: Я почти уверен, что сам совершил эту ошибку в какой-то момент :) –