У нас есть решение для нескольких проектов на основе MS Prism в WPF. Для простоты понимания возьмем оболочку проекта и пользовательское управление проектом. Проект usercontrol имеет множество представлений для различных функций. У нас есть всплывающее окно в проекте оболочки, которое вызывается из главного окна оболочки, я хочу загрузить другое представление в диспетчер областей всплывающих окон в зависимости от требований. Любая помощь / предложение через объяснение потока или некоторые примеры кода будут очень заметны.
С уважением
WPF Prism - динамическая загрузка представления во всплывающем окне
Ответы (2)
Для достигать того, что вы пытаетесь сделать, изолированным способом. Подробнее об этом можно узнать здесь.
Пожалуйста, дайте мне знать, если это поможет.
Спасибо, Дамиан
Использование контейнера внедрения зависимостей (например, Unity, который также можно получить из CompositeWPF страница Microsoft), вы будете возможность передавать экземпляр IRegionManager
вашим различным модулям / всплывающим окнам ...
Например, в представлении, в которое вы хотите внедрить другое представление, у вас может быть именованный ItemsControl:
<ItemsControl cal:RegionManager.RegionName="Modules" />
Чтобы заполнить его своим собственным представлением, все, что вам нужно сделать из кода, это:
_regionManager.Regions["Modules"].Add(view);
(Где _regionManager
может быть переменной экземпляра, заполненной посредством внедрения зависимостей в конструктор класса, в котором она находится). Не беспокойтесь о регистрации IRegionManager
интерфейса в контейнере, это делает UnityBootstrapper во время настройки.