Я начинаю свой первый набег в мир Prism v4 / MVVM с MEF & WPF.Я успешно создал оболочку и, используя MEF, я могу обнаружить и инициализировать модули.Однако я не уверен, как правильно обеспечить навигацию для представлений, представленных этими модулями.
Например, предположим, что один из модулей предоставляет три представления, и я хочу отображать навигацию для этих представлений науправление меню.До сих пор я успешно раскрыл представление, основанное на MenuItem
, и это MenuItem
содержит дочерние MenuItem
элементы управления, таким образом обеспечивая иерархию команд, которую можно использовать.Отлично.
Дело в том, что это неправильно.Сейчас я заявляю в моем модуле, что навигация (и, следовательно, оболочка) ДОЛЖНА поддерживать использование меню.Что если я захочу перейти на использование ToolBar
или даже Ribbon
.Затем мне пришлось бы изменить все свои модули, чтобы открыть соответствующие типы элементов управления для оболочки.
Я огляделся вокруг, и на некоторых сайтах упоминается использование «Сервиса» для обеспечения навигации, причем во времяПри инициализации модуля к сервису добавляются опции навигации, которые, в свою очередь, используются оболочкой для отображения этой навигации в любом нужном формате (ToolBar
, TreeView
, Ribbon
, MenuItem
и т. д.) - ноЯ не могу найти никаких примеров того, как на самом деле это сделать.
Чтобы представить все это в перспективе, я в конечном итоге ищу возможность выбирать виды из меню и / или другого навигационного элемента управления (вероятно, Ribbon
).а затем открыть эти представления по требованию в TabControl.Я уже получил возможность создавать представления в TabControl
во время инициализации модуля, теперь мне нужен следующий шаг.
Что мне нужно знать, так это: что будет правильным путемраскрывать параметры навигации таким образом, чтобы не настаивать на поддержке определенного элемента управления оболочкой, и если сервис - это путь, то как можно объединить это в шаблонах Prism / MVVM.
Заранее спасибо за любые идеи, которые вы можете предложить.