2013-04-01 105 views
4

在我的WP8應用程序中,我遇到了必須從一個頁面導航到另一個頁面的情況,之後由於某些原因我需要重新加載相同的頁面。在Windows Phone 8中導航到相同的頁面

MainPage.xaml文件 - >的Page1.xaml - >的Page1.xaml - >的Page1.xaml

當用戶按下backkey應該回到 「MainPage.xaml中」 頁面。

我嘗試使用NavigationService.navigate()進行導航,某些原因我無法重新加載頁面。如果我通過任何獨特的查詢字符串(例如:Guid)與導航網址,我能夠重新加載頁面。但是,當我按回按鈕 - 它永遠不會返回到Mainpage.xaml頁面。

有沒有最好的方法來實現這一目標?

+0

你可以在PostBack URL中傳遞'#'符號嗎? – MethodMan

回答

5

傳遞一個查詢字符串:

您也可以刪除瀏覽歷史的所有元素。你的隨機GUID)。在您的OnNavigatedTo方法檢查GUID查詢字符串是否存在。如果它確實存在,則知道您不希望該頁面位於Navigation Stack上,因爲它是重新加載的版本,因此可以通過調用NavigationService.RemoveBackEntry將其刪除。

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    string guid = string.Empty; 
    if (NavigationContext.QueryString.TryGetValue("guid", out guid)) 
    { 
     //guid exists therefore it's a reload, so delete the last entry 
     //from the navigation stack 
     if(NavigationService.CanGoBack) 
      NavigationService.RemoveBackEntry(); 
    } 
} 
1
NavigationService.Navigate(new Uri("/MainPage.xaml?" + DateTime.Now.Ticks, UriKind.Relative)); 

你可以使用它控制下,導航到同一個頁面

0

因爲我無法找到任何Windows 10(通用應用程式UWP UAP)關於這個問題,而這一次似乎是對谷歌的搜索結果頂部重新加載頁面,這裏是一個解決方案:

NavigationService.Refresh(); 

我在我的應用程序使用Template 10,所以我不知道它的問題在這裏。 lib將NavigationService封裝在自己的INavigationService中

相關問題