0

Windows 8 アプリ (C#/XAML) を作成し、Frame.Navigate()プロパティを使用してページ間を移動しています。各ページには、ページ上のデータを更新し、DataContextプロパティを設定する AppBar アイコンがあります。これは機能し、ボタンが押された後にそれに応じて UI が更新されます。

私が見ている問題は、別のページに移動し、戻る矢印をクリックして前のページに戻ると表示されます。

メソッドが実行されるOnNavigatedTo(NavigationEventArgs e)と(戻る矢印をクリックした後)、e.Parameter値は古い値です(更新ボタンをクリックして更新される前DataContext)。

を使用する以外の方法でパラメーター値を更新する方法がわかりませんがFrame.Navigate(typeof(PageTypeName), paramValue);、ナビゲーション アクションを開始したくありません。

私の質問は 2 つあります。

  1. DataContextページに戻ったときに、設定した値がメソッドで公開されるように、変更e.Parameterを永続化するにはどうすればよいですかOnNavigatedTo(NavigationEventArgs e)

  2. Win8 アプリのナビゲーション ライフサイクルを説明する参考資料はありますか?

...または、これを別の方法で行う必要がありますか?

4

1 に答える 1

0

解決策を見つけました。

NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;

これは、ページの古いインスタンスを常にキャッシュし、戻ったときに新しいインスタンスを作成しないようにフレームに指示します。

DataContextこのようにして、ページに戻ったときに新しい値が上書きされることはありません。

于 2012-04-15T21:55:42.197 に答える