Пункт меню для каждого модуля с динамической загрузкой содержимого модуля с помощью Prism или MEF - PullRequest
7 голосов
/ 12 января 2011

Я разрабатываю приложение, в настоящее время использующее Prism и MEF.

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

Дляпример:

Меню Регион: Модуль A (выбран) |Модуль B

Вкладка Регион: Модуль AViewA |Модуль AViewB |ModuleAViewC

Изменения в меню Регион: Сотрудники |Инвентарь (выбранный)

Вкладка Регион: Вещи |В Fi

1 Ответ

11 голосов
/ 12 января 2011

Здесь много подобных вопросов. В общем, подход, который вы выберете, заключается в определении службы в инфраструктурной DLL, на которую могут ссылаться ваши модули. Ваши модули добавят меню / панель инструментов / элемент ленты / любые объекты через сервис. Где реализован сервис, зависит от вас - это может быть проект Shell, инфраструктура или отдельный модуль. Очевидно, что если он находится в отдельном модуле, вам нужно убедиться, что другие ваши модули определяют его как зависимость.

Вы можете проверить следующее:

У этого есть ссылка на проект, демонстрирующий динамическое меню: Пример использования Prism для загрузки модулей в меню

В котором я задаю вопрос о том, как построить динамическое меню: Как динамически добавлять MenuItems (с заголовком) в меню WPF

Подробнее .... Загрузка представлений модуля по умолчанию в области для создания меню

И еще! Сервис меню в приложении Prism CAL

Там вы можете найти больше, чем это. Это был довольно распространенный запрос; Я уверен, что вы можете собрать хороший подход для этого из примеров кода.

...