![](/img/trans.png)
[英]NullPointerException after going back in a NavigationWindow
[英]detect navigationwindow go back event
如何确定何时按下导航窗口后退按钮并将该事件捕获到额外的东西。 我正在考虑管理页面状态。
将处理程序添加到NavigationWindow.Navigating
或NavigationService.Navigating
。 在你的处理程序中:
void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
if (e.NavigationMode == NavigationMode.Back) {
e.Cancel = true;
// TODO: whatever state management you're going to do
}
}
Ps 您需要注册导航服务。 在我的代码中,它在页面构造函数上不起作用,因为导航服务仍然为空。 所以我将 Loaded="page_Loaded" 添加到 XAML 页面标记并将其分配到那里:
bool _navigationServiceAssigned = false;
private void page_Loaded(object sender, RoutedEventArgs e)
{
if (_navigationServiceAssigned == false)
{
NavigationService.Navigating += NavigationService_Navigating;
_navigationServiceAssigned = true;
}
}
NavigatingCancelEventArgs
包含管理页面状态所需的有关导航请求的所有信息。
NavigationService
提供了一些你可以订阅的事件,如果你想控制导航过程:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.