Пункт меню для каждого модуля, с динамическим наполнением модуля приложением Prism или MEF

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

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

Например:

Регион меню: ModuleA (выбранный) | ModuleB

Область вкладок: МодульAViewA | ModuleAViewB | ModuleAViewC

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

Область вкладок: Пункты | В Fi

1 ответ

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

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

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

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

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

И еще! Сервис меню в клиентской лицензии Prism

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

licensed under cc by-sa 3.0 with attribution.