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