1
在Frame
上調用SetNavigationState
之後,如何獲取傳遞到當前頁面的導航參數(在之前的應用程序執行過程中)?SetNavigationState後獲取當前頁面的參數
可以使用BackStack
和ForwardStack
中的條目獲取其他頁面的參數,但當前頁面不在其中。
我正在爲圖書館編寫導航服務,因此我不控制導航到的Page
類。
在Frame
上調用SetNavigationState
之後,如何獲取傳遞到當前頁面的導航參數(在之前的應用程序執行過程中)?SetNavigationState後獲取當前頁面的參數
可以使用BackStack
和ForwardStack
中的條目獲取其他頁面的參數,但當前頁面不在其中。
我正在爲圖書館編寫導航服務,因此我不控制導航到的Page
類。
在備註的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);
}
不幸的是,'Page'是不是我的(這是一個「導航服務「),所以我不能添加代碼。 :( –
@SolalPirelli由於您正在爲圖書館編寫導航服務,因此這取決於您的實施。我不確定您是如何實現「導航服務」的,但是,您可以參考[NavigationService](https ://github.com/Windows-XAML/Template10/tree/master/Template10%20(Library)/ Services/NavigationService)在Template10中有一個[CurrentPageParam屬性](http://i.stack.imgur.com/ –
Template10將當前參數存儲在設置中並稍後取回,這是完全可行的,但我覺得它有點愚蠢;顯然它存儲在內存中的某個地方,似乎沒有任何API可以獲得它。:/ –