Перейдите в новое окно в Prism WPF - PullRequest
0 голосов
/ 26 апреля 2019

ВОПРОС 1

Я знаю, что есть способ открыть всплывающее диалоговое окно с пользовательским представлением, используя InteractionRequestTrigger , PopupWindowAction и InteractionRequest . Но я ищу решение, такое как регистрация Window и WindowViewModel для навигации и вызов INavigationAsync.Navigate ("SomeWindowUri", someParameters) . Это кажется намного более простым и чистым решением. Поддерживает ли Prism такой подход?

ВОПРОС 2

У меня есть главное окно (MainWindow) и новое окно (NewWindow), которое будет отображаться из MainWindow. Я пытаюсь отобразить какой-то вид в регионе, который определен в NewWindow. Когда я использую IRegionManager.RegisterViewWithRegion, он работает как положено. Но когда я отображаю NewWndow и затем вызываю IRegionManager.RequestNavigate, ничего не происходит. Метод IRegionManager.RequestNavigate работает должным образом, когда регион находится в MainWindow. Это моя ошибка или Prism не может выполнять навигацию в отдельном окне?

Вот пример: https://bitbucket.org/equo/prismregionnavigationtest.git Это модифицированный пример примера Prism для WPF: 17-BasicRegionNavigation. После открытия нового окна при нажатии любой кнопки ничего не происходит, но ViewA или ViewB должны отображаться ниже. После раскомментирования MainWindow1 в методе App.CreateShell окно работает должным образом.

1 Ответ

0 голосов
/ 08 мая 2019

По вопросу 1: Команда Prism работает над новым сервисом диалогов, который делает именно то, что я хочу.https://github.com/PrismLibrary/Prism/pull/1682 Уже доступно через предварительную версию призмы.

По вопросу 2: Чтобы это работало, необходимо создать область области действия и прикрепить ее к вновь созданному окну..

_ScopedRegion = _RegionManager.CreateRegionManager();
RegionManager.SetRegionManager(newWindow, _ScopedRegion);

А затем используйте его для навигации в новом окне.

_ScopedRegion.RequestNavigate("NewRegion", "ViewA");

Демонстрация здесь: https://bitbucket.org/equo/prismregionnavigationtest.git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...