方法來傳遞參數
1.使用查詢字符串
您可以通過查詢字符串傳遞參數,使用此方法意味着必須將數據轉換爲字符串並對其進行url編碼。你只能用這個來傳遞簡單的數據。
導航頁:
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));
目的地頁:
string parameter = string.Empty;
if (NavigationContext.QueryString.TryGetValue("parameter", out parameter)) {
this.label.Text = parameter;
}
2.使用NavigationEventArgs
導航頁:
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative));
// and ..
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
// NavigationEventArgs returns destination page
Page destinationPage = e.Content as Page;
if (destinationPage != null) {
// Change property of destination page
destinationPage.PublicProperty = "String or object..";
}
}
目標頁:
// Just use the value of "PublicProperty"..
3。使用手動導航
導航頁:
page.NavigationService.Navigate(new Page("passing a string to the constructor"));
目的地頁:URI和手動導航之間
public Page(string value) {
// Use the value in the constructor...
}
差異
我覺得這裏的主要區別是應用程序的生命週期。爲了導航的原因,手動創建的頁面保存在內存中。詳細瞭解它here。
傳遞複雜對象
可以使用方法的一個或兩,通過複雜的對象(推薦)。您還可以將類的自定義屬性添加到Application
類中,或將數據存儲在Application.Current.Properties
中。
另外需要注意的是'NavigationContext.QueryString.TryGetValue(「parameter」,out參數)'需要從以下方法中調用:'''''''''''''''''' – vishal