我想阻止用户从页面导航离开页面,如果我检测到他们还没有保存更改。注册NavigationService以防止NavigateAway(保存更改)
我尝试使用Unloaded
方法上Page
,但我相信这是为时已晚,我不能用e.Cancel = true
防止导航。
我看到类似的一些问题已经和他们建议订阅该NavigationService.Navigate
事件,并防止导航经过这里。我试图使用var nav = new NavigationService.GetNavigationService(this);
来访问它,但我知道这是不正确的。
基本上我无法找到如何订阅和防止NavigationService
导航的解释。
为什么要尝试并预防它?为什么不在你的属性上实现一个IsDirty模式,当这个模式返回真时,询问用户他是否还想导航。这样你就永远不会碰到导航。 – SilentStorm
@SilentStorm基本上就是我想要做的 - 我只是不确定如何在导航发生之前询问用户(例如关闭程序或单击新页面)。 – CBreeze