0

WP 8 アプリを開発していますが、ナビゲーションに問題があります。

実際のページの状態を失うことなく、バック スタックのページに移動する方法が見つかりません。

状況は次のとおりです。

  1. ページ A からページ B に移動すると、バック スタックには A のみが含まれます。
  2. ページ BI でページ A に戻りたいが、ページ B がバックスタックに保持されているため、ページ A に戻ったときにページ B に戻って状態を保持できます。

A --> B --> A --> B、これは一種のサイクルですが、1 つではありません。ページ A には、ページ B にも表示されている項目が詳細に表示されていませんが、ページ BI からページ A に移動して詳細を表示し、その後、ページを行ったり来たりできます。

複雑に思えるかもしれませんが、非常に直感的であることを保証します :) Android と iOS ではこのように動作します。

ページ A の前にページ B をナビゲーション スタックに追加する方法はありますか? NavigationService.GoBack() を呼び出すと、以前の状態でページ A に戻り、A から B に同じことを行います。

前もって感謝します!!!

4

2 に答える 2

1

いくつかのオプションがあります。標準の MVVM パターンを使用する場合、実際には「ページの状態」を保存していません (リストのスクロール位置や選択したテキスト コントロールなどを意味しない限り) - データを保存しています。そのデータは、次にページ B に移動したときにそこに表示されます。データバインディングの詳細と、ページに再バインドされるグローバル状態でデータを保存する方法については、このビデオそれが指している MSDN の記事をご覧ください。次回ナビゲートするとき。

データバインディングで問題が解決しない場合は、別のオプションとして、別のページをまったく使用せず、A と B を同じ物理ページ上の 2 つの異なるコンテナーとして使用することもできます。次に、コンテナ A に戻る必要があるときに、戻るボタンをトラップして「戻る」ように偽装できます。

于 2015-02-08T08:05:19.957 に答える
0

このヘルプ トピックを使用して、Windows Phone 8 のページ状態を保持および復元する方法を学習してください。ナビゲーション スタックは、ページ URI と少量のデータ (URI パラメーター内) のみを格納できます。

このような:

NavigationService.Navigate(new Uri("/SecondPage.xaml?var=value", UriKind.Relative));

SecondPage.xaml、val の値を取得できます。ここに詳細な例があります。

 if (NavigationContext.QueryString.TryGetValue("val", out msg))
于 2015-02-05T23:28:21.683 に答える