0

ここで、WindowsPhoneのページナビゲーションについて2つの質問があります。

  1. ナビゲートしているページのインスタンスを取得する方法はありますか?つまり、ページ1にいて、ボタンをクリックしたときにページ2に移動したい場合NavigationService.Navigate("page_2_uri")、ページ1の呼び出しによってページ2が初期化された後にページ2インスタンスを取得できますか?
  2. どのページからナビゲートしたかを知る方法はありますか?たとえば、私は現在ページ3にいて、次のようなことをしたいと思います。ページ3がページ2からナビゲートされている場合は、これを実行します。それ以外の場合は、実行します。

ありがとうございました。

4

2 に答える 2

3
  1. 移動中のページのインスタンスを取得する方法はありますか?

いいえ。

  1. どのページから移動したかを知る方法はありますか?

はい。NavigationService.BackStackをトラバースする

于 2012-07-22T21:10:18.087 に答える
2
  1. NavigationService を使用してページ間を移動するという考え方は、目的地に関する詳細を知る必要がないということです。したがって、あなたの例では、ページ 1 を離れるまでページ 2 は初期化されないため、ページ 1 はスコープ外になり、ページ 2 で何もできなくなります。情報/コンテキストを渡したい場合ページ 2 では、クエリ パラメータを使用することをお勧めします (次の回答を参照)。ナビゲーションの進行状況を知りたい場合は、OnNavigatedFromイベントをオーバーライドして、NavigationEventArgsの Uri プロパティを確認できます。

  2. Silverlight Page クラスのNavigationContextプロパティを確認することをお勧めします。このプロパティを使用すると、ナビゲーション リクエストの QueryString を表示できます。このアプローチを使用すると、「page_3?previous_page=2」のような uri を使用してページ 3 に移動し、NavigationContext の QueryString から previous_page を抽出して、どこから来たかを確認できます。

于 2012-07-22T21:07:27.367 に答える