2010-06-08 3 views
1

Есть ли способ создать раздел в меню для списка пунктов меню, которые будут заполнены чем-то вроде ObservableCollection?Динамические пункты меню в WPF

Я хотел бы повторить функциональность окна в Visual Studio, где вкладки открытых документов, перечислены в нумерованный список, ограниченный первым 10.

ответ

1

См. "Merge ContextMenus" from here. Вы можете найти дополнительную информацию, выполнив поиск CompositeCollection и меню/ContextMenu.

EDIT: Только что увидели, что CompositeCollection уже упоминался в комментарии, но я собираюсь оставить это здесь для справки.

0

Как ваше меню получить данные прямо сейчас? Это привязка данных? Проверьте это article для привязки своего меню к коллекции.

Теперь вам нужно добавить логику, когда добавить элемент в коллекцию.

Например: В вашем сценарии вы должны хранить открытые документы в списке. Затем вам нужно отфильтровать первые 10 документов и добавить их в свойство children класса MenuItem, указанного в статье.

+0

Хм, действительно отвратительно, что я должен ставить свои статические пункты меню с нестационарными элементами. Я буду принимать это как правильный ответ, если не получаю никаких чистых решений WPF. Я действительно чувствую, что, поскольку MS использует эту функцию в своей собственной среде IDE, они бы построили ее больше в WPF, по крайней мере, с помощью нескольких преобразователей или чего-то еще. –

+0

@mattdekrey: Что такое чистое решение WPF? почему это не чистое решение WPF? – Amsakanna

+0

Это WPF + C#. Я надеюсь сделать все это с привязкой к данным и без какого-либо дополнительного настраиваемого кода. Я бы очень хотел, чтобы декларация уровня презентации (точка WPF) уменьшала логику в моих базовых классах. –

0

Вы можете создавать пункты меню в коде и вручную добавлять их в меню при загрузке формы. Это не изящно, но он выполняет свою работу.