У меня есть приложение с тремя регионами. Регион A - это область навигации для хранения элементов навигации для модулей в приложении. Регионы B и C - это области содержимого для модулей. У меня также есть два модуля Module1 и Module2, каждый из которых имеет элемент управления навигационными элементами, загруженный в область A. Регион A содержит NavigationItemMod1Control и NavigationItemMod2Control.WPF Prism Подтверждение навигационного запроса для нескольких регионов
NavigationItemMod1Control привязан к команде, которая загружает view1B в область B и view1C в область C (NavigationItemMod2Control имеет аналогичную команду). Команда выполнения метода показано ниже:
public void Execute(object parameter)
{
// Show View 1B
var view1BUri = new Uri(Module1RegionNames.ViewBControl, UriKind.Relative);
regionManager.RequestNavigate(RegionNames.ViewBArea, view1BUri);
// Show View 1C
var view1CUri = new Uri(Module1RegionNames.ViewCControl, UriKind.Relative);
regionManager.RequestNavigate(RegionNames.ViewCArea, view1CUri);
}
Когда я нажимаю на NavigationItemMod2Control, я хочу, чтобы подтвердить навигацию перед загрузкой либо вид 2B или вид 2С в соответствующих регионах.
Я успешно реализовал IConfirmNavigationRequest в viewmodel для View1B в модуле 1, но это только контролирует навигацию для региона B. Если пользователь отменяет запрос на навигацию, область B корректно остается в виде View1B, но View2C загружается в область C .
Любые предложения о том, как подтвердить навигацию один раз для обоих регионов?
Почему вы не можете реализовать 'IConfirmNavigationRequest' для viewmodel вашего' view1C'? – dymanoid
@dymanoid Я рассматривал это, но я хотел бы управлять подтверждением навигации для всех представлений в Модуле 1 в одном месте – Tiggy