Как динамически генерировать элементы меню, используя x: Reference? - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть MenuItem, для которого ItemsSource установлено следующее CompositeCollection:

<CompositeCollection>
    <MenuItem x:Name="SpinnerMenuItem" Header="Waiting..."/>
    <CollectionContainer 
        Collection="{Binding DataContext.Source, 
                     Source={x:Reference SpinnerMenuItem}, 
                     Converter={StaticResource NoOpConverter}}"/>
</CompositeCollection>

Точка останова внутри моего NoOpConverter говорит мне, что моя коллекция успешно привязана к CollectionContainer. Проблема в том, что меню отображается совершенно пустым! Все, что я получаю, это всплывающее окно высотой около 3 пикселей и шириной 10 пикселей.

Почему элементы моего меню не отображаются? Даже «SpinnerMenuItem» исчезает после заполнения связанного списка. У меня не было этой проблемы в более простом случае, когда я просто привязывался к статическому ресурсу CollectionViewSource.

1 Ответ

0 голосов
/ 08 июня 2012

Это похоже на проблему с CompositeCollection. Обходной путь должен использовать StaticResource вместо Binding или подобного. Более подробная информация здесь: Почему CompositeCollection не замораживается?

...