Создание контейнера для пользовательской навигации WPF

#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();