#wpf #navigation #prism #navigationservice
#wpf #навигация #prism #navigationservice
Вопрос:
У меня есть приложение, в котором есть небольшая панель, которая должна поддерживать навигацию, подобную браузеру, например, назад, вперед и домой. Таким образом, он также должен содержать историю панелей, на которые переходил пользователь. Я не думаю, что смогу использовать NavigationWindow, потому что только небольшая часть окна будет поддерживать навигацию.
Как лучше всего это сделать? Я просматривал NavigationService и навигационные команды, такие как NavigateBack и т. Д.. Но довольно сложно связать все это вместе.
Я также использую Prism / MEF.
Ответ №1:
Вам нужно использовать журнал региона. Если вы получите региональный менеджер и получите ссылку на экземпляр региона Prism, определенный для панели. Затем вы можете использовать Журнал службы навигации для региона, чтобы вернуться назад. Вы также можете зарегистрироваться в событии NavigationService NavigationService для региона, если вам нужно выполнить какое-либо действие при переходе к следующему представлению.
mainRegion = this.RegionManager.Regions["MainRegionName"];
mainRegion.NavigationService.Navigated = NavigationService_Navigated;
mainRegion.NavigationService.Journal.GoBack();