2013-01-09 60 views
2

我想要做一些檢查,當我點擊NavigateButton(返回)首頁。 1.顯示MessageDialog顯示更新內容「是」或「不是」 2.如果單擊是,更新當前頁面。 如果單擊否,什麼都不做 3.navigate主頁。的Win8商店應用程序,做一些檢查在OnNavigatedFrom方法

我用下面的代碼,但目前它會返回到主頁,然後再彈出一個對話框。 哪能讓我點擊後的消息對話框

protected async override void OnNavigatedFrom(NavigationEventArgs e) 
    { 

     MessageDialog md = new MessageDialog("Do you want to save"); 
     md.Commands.Add(new UICommand("Yes", (UICommandInvokedHandler) => 
      { 
       Application.Current.Exit(); 
       //this.UpdateClick(); 
      })); 
     md.Commands.Add(new UICommand("No")); 
     var task = md.ShowAsync().AsTask(); 
     await task; 
    } 

回答

1

OnNavigateFrom沒有取消的,還發生已經發生導航後的主頁發生了導航的作用。

爲什麼不把代碼重新連接到點擊處理程序彈出消息框?然後當用戶點擊一個按鈕時,執行適當的導航。

private async void OnBackButtonClick(object sender, RoutedEventArgs routedEventArgs) 
    { 
     MessageDialog md = new MessageDialog("Do you want to save"); 

     md.Commands.Add(new UICommand("Yes", uiCommandInvokedHandler => 
     { 
      // Refresh logic 
     })); 

     md.Commands.Add(new UICommand("No", uiCommandInvokedHandler => 
     { 
      var rootFrame = (Frame)Window.Current.Content; 
      rootFrame.Navigate(typeof(MainPage)); 
     })); 

     await md.ShowAsync(); 
    } 
相關問題