[英]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.