Я хочу, чтобы пользователь не мог перейти от страницы, если я обнаруживаю, что есть изменения, которые они еще не сохранили.Регистрация в NavigationService для предотвращения NavigateAway (сохранить изменения)
Я попытался использовать метод Unloaded
на Page
, но я считаю, что уже слишком поздно, и я не мог использовать e.Cancel = true
для предотвращения навигации.
Я уже встречал несколько вопросов, и они предложили подписаться на мероприятие NavigationService.Navigate
и предотвратить навигацию здесь. Я попытался получить к нему доступ, используя var nav = new NavigationService.GetNavigationService(this);
, но я знаю, что это неверно.
В принципе, я не могу найти объяснение того, как подписаться и предотвратить навигацию NavigationService
.
Зачем пытаться предотвратить это? почему бы не реализовать шаблон IsDirty для ваших свойств, и когда это возвращает true, спросите пользователя, хочет ли он по-прежнему перемещаться. Таким образом, вы никогда не столкнетесь с навигацией в первую очередь. – SilentStorm
@SilentStorm, по существу, я хочу сделать - я просто не знаю, как спросить пользователя перед наступлением навигации (например, они закрывают программу или нажимают на новую страницу). – CBreeze