2016-06-15 45 views
1

Frame上調用SetNavigationState之後,如何獲取傳遞到當前頁面的導航參數(在之前的應用程序執行過程中)?SetNavigationState後獲取當前頁面的參數

可以使用BackStackForwardStack中的條目獲取其他頁面的參數,但當前頁面不在其中。

我正在爲圖書館編寫導航服務,因此我不控制導航到的Page類。

回答

2

備註Frame.SetNavigationState method,它宣稱

調用SetNavigationState將調用Page.OnNavigatedTo當前頁面,用NavigationMode.Back

因此,要獲得傳遞給當前頁面導航參數,我們可以用OnNavigatedTo方法類似以下內容:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    var parameter = e.Parameter.ToString(); 

    System.Diagnostics.Debug.WriteLine(parameter); 
} 
+0

不幸的是,'Page'是不是我的(這是一個「導航服務「),所以我不能添加代碼。 :( –

+1

@SolalPirelli由於您正在爲圖書館編寫導航服務,因此這取決於您的實施。我不確定您是如何實現「導航服務」的,但是,您可以參考[NavigationService](https ://github.com/Windows-XAML/Template10/tree/master/Template10%20(Library)/ Services/NavigationService)在Template10中有一個[CurrentPageParam屬性](http://i.stack.imgur.com/ –

+0

Template10將當前參數存儲在設置中並稍後取回,這是完全可行的,但我覺得它有點愚蠢;顯然它存儲在內存中的某個地方,似乎沒有任何API可以獲得它。:/ –