1

私は、基本的に次の機能を備えたシンプルなWindowsPhoneアプリに取り組んでいます。

  • ページ1には、ユーザーの場所を取得してページ2に移動するためのボタンがあります。
  • ページ2、ユーザーの場所とマップコントロールを使用して地図を表示し、ビューセンターはユーザーの場所です。ページ3に移動するためのアプリバーボタンがあります。
  • ページ3、このページに近くの場所のリストを表示します。ユーザーが場所の1つを選択すると、ページ2に戻り、マップコントロールに場所を固定します。

したがって、ここに質問があります。
この場合、ページ2のデータを保持したいので、ページ3から戻るたびにページ2を再初期化する必要はありません。ページ2のインスタンスをどこかに保持できれば、完璧です。 3ページから戻りたいときはいつでもそれを使用してください。これまでのところ、2つのアプローチがあることを知っています。1つはPage2 xamlにあり、次のようなものがあります。

<Page
  x:class "Page2.keepPageAlive"
  ...

もう1つは、AddBackEntryを使用しています。しかし、どちらが私の場合に適しているのか、または他の良いアプローチがあるのか​​わかりません。

あなたのアイデアを共有してください、ありがとう。

4

2 に答える 2

2

page2からpage3に移動し、NavigationService.GoBack()を使用してpage2に戻る限り、page2インスタンスは存続します。したがって、基本的に変更するものはありません。

于 2012-07-25T18:36:43.700 に答える
1

WP7ナビゲーションスタックには、ページ2が引き続き存在します。したがって、ページ1からページ2、ページ3に移動すると、3ページすべてが存在します。

ページ3からNavigationService.GoBack()を呼び出すと、ページ3がポップされ、ページ2の前のインスタンスが復元され、ページ2の新しいインスタンスは作成されません。これは[戻る]ボタンを押したときにも発生します。

NavigationService.Navigate()を呼び出す場合にのみ、新しいインスタンスが作成されます。

于 2012-07-25T18:35:59.580 に答える