XAML ページ間でのパラメーターの受け渡しは、効果的なアプリケーション設計の基本的な側面です。 Windows Phone、Silverlight、WPF、または Windows 8 アプリケーションのページ間を移動する場合、データを渡すための適切な方法を理解すると、アプリケーションの機能とユーザー エクスペリエンスが向上します。
単純なデータ転送には、クエリ文字列を使用できます。このメソッドを介して渡されるデータは文字列に変換され、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; }
NavigationEventArgs を使用すると、ナビゲーション中にメソッド呼び出しを通じて渡されるパラメーターにアクセスできます。
ページのナビゲーション:
page.NavigationService.Navigate(new Uri("/Views/Page.xaml?parameter=test", UriKind.Relative)); // and ... protected override void OnNavigatedFrom(NavigationEventArgs e) { Page destinationPage = e.Content as Page; if (destinationPage != null) { destinationPage.PublicProperty = "String or object.."; } }
Destinationページ:
// Use the value of "PublicProperty"..
手動ナビゲーションでは、コンストラクターを介してカスタム パラメーターを渡すことができます。
ページの移動:
page.NavigationService.Navigate(new Page("passing a string to the constructor"));
宛先ページ:
public Page(string value) { // Use the value in the constructor... }
主な違いはアプリケーションのライフサイクルにあります。手動で作成されたページはメモリに保持されますが、Uri 経由で移動されたページはメモリに保持されません。
メソッド 1 と 2 を使用して複雑なオブジェクトを渡すことができます。あるいは、カスタム プロパティを使用して、 Application クラスに追加するか、データを Application.Current.Properties.
に保存できます。以上がXAML ページ間で値を効率的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。