У меня есть проект WPF, основанный на выпуске Prism Feb 2009, настроенный как:
Shell представляет один ContentControl как «MainRegion»
В другом представлении (пользовательском элементе управления), определенном в проекте инфраструктуры под названием SplitView, две дополнительные области «LeftRegion» и «RightRegion» также представлены как ContentControl.
Некоторые модули моего приложения должны отображать свое представление в MainRegion (один пользовательский элемент управления), в то время как другие должны отображать свои представления (два пользовательских элемента управления в разделенном виде) в LeftRegion и RightRegion.
Я пытался использовать области с областями действия, предполагая, что определенные контроллеры будут содержать ссылки на области с областями действия. Таким образом, в основном каждый контроллер, заинтересованный в функциональности SplitView, должен создавать новый SplitView (пользовательский элемент управления) и активировать его в MainRegion, одновременно активируя два пользовательских элемента управления в LeftRegion и RightRegion недавно созданных scoped SplitView.
Я использую MVVM с View Injection для отображения видов.
Излишне говорить, что с этим подходом что-то пошло не так.
Во время выполнения я получаю это исключение: «Возникла исключительная ситуация при создании региона с именем« LeftRegion ». Исключением было: System.InvalidOperationException: указанный элемент уже является логическим дочерним элементом другого элемента. Сначала отключите его».
Правильно ли я полагаю, что LeftRegion и RightRegion пытаются зарегистрироваться в главном RegionManager каждый раз, когда я создаю экземпляр SplitView?
Извините за запутанный / подробный пост. Какие-либо предложения? Лучшие практики для достижения этой цели?
Заранее спасибо,
Али