パラメータを渡すメソッド
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"));
宛先ページ:
public Page(string value) {
// Use the value in the constructor...
}
ウリと手動ナビの違い
ここでの主な違いは、アプリケーションのライフサイクルだと思います。手動で作成されたページは、ナビゲーションのためにメモリに保持されます。詳しくはこちらをご覧ください。
複雑なオブジェクトを渡す
方法 1 または 2 を使用して、複雑なオブジェクトを渡すことができます (推奨)。Application
クラスにカスタム プロパティを追加したり、 にデータを保存したりすることもできますApplication.Current.Properties
。