0

私のアプリケーションでページを使用しています。理解のために簡単に説明させてください。

ページA,BとがありCます。ページからA -> page B、ページA -> page Cが可能です。

ページ A がページ C からではなくページ B から再開された場合にのみ、アクションを実行する必要があります。

どうすれば可能になりますか、ページ B からページ A にフラグ データを送り返すことができますかOnBackPressed。もしそうなら、ページAでそのフラグデータを取得するためにどこで聞くことができますか.

4

2 に答える 2

2

あなたのApp.xaml.cs作成でpublic static PhoneApplicationPage PrevAppPage;

Page bイベントのコンストラクターとPage Cページ A でそれを初期化し、onNavigatedToその値をチェックします。そして、それぞれの仕事をしてください。

またはenums、ページ コンストラクターでそれらを作成して初期化し、page A's onNavigatedToイベントで値を確認することもできます。

どちらの方法でも機能するはずです

于 2012-10-08T12:35:06.733 に答える
1

QueryStringを使用できます。Bからに移動するときAは、QueryString を URL に追加します。

NavigationService.Navigate(new Uri("/PageA.xaml?PreviousPage=b", UriKind.Relative));

次に、A's OnNavigatedToメソッドで、PreviousPageQueryString の値を確認し、その値がb.

protected override void OnNavigatedTo(NavigationEventArgs e)  
{
     base.OnNavigatedTo(e);

     string prevPage="";

     NavigationContext.QueryString.TryGetValue("PreviousPage", out prevPage);

     if(prevPage == "b")
     {
         //code to call if A is resuming from B
     }    
}

コメントに基づいて更新します(他の人のために上記のコードを残します)

に関していくつかのオプションがありますBackKey。まず、上記のコードを使用して、その特定のページを履歴から削除できます。これを行うには、上記のコード内でRemoveBackEntryメソッドを使用します。

if(NavigationService.CanGoBack)
   NavigationService.RemoveBackEntry();

バック スタックの詳細については、こちらを参照してください。

App.xaml.csまたは、たとえば、ユーザーがページを離れるたびに更新されるグローバル変数を追跡することもできます。次に、 でA、その変数をチェックして、前のページが何であったかを確認できます (必要に応じて変数をリセットして、誤って再度読み込まれないようにします)。

于 2012-10-08T11:52:33.693 に答える