6

Windows Phone 7アプリケーションで、CurrentPageを取得しました。これは、特別なイベントで、NavigationServiceを使用して新しいページに移動します。

NavigationService.Navigate(new Uri("/NewPage.xaml", UriKind.Relative));

ここで、ユーザーがNewPageをクリックして戻ったときに、アプリでCurrentPageをスキップして、アプリのMainPageに直接移動します。

NavigationService.RemoveBackEntryを使用しようとしましたが、これによりCurrentPageではなくMainPageが削除されます。

現在をバックスタックに配置せずに新しいページに移動するにはどうすればよいですか?

4

3 に答える 3

11

NewPage.xaml に移動するときにパラメーターを渡すと、バックスタックから前のページをいつ削除するかがわかります。

これを次のように行うことができます。

CurrentPage.xamlからNewPage.xamlに移動するときにパラメーターを渡す

    bool remove = true;
    文字列 removeParam = 削除しますか? bool.TrueString : bool.FalseString;

    NavigationService.Navigate(new Uri("/NewPage.xaml?removePrevious="+removeParam , UriKind.Relative));

NewPage.xamlOnNavigatedToイベントで、前のページを削除するかどうかを確認します。

    bool remove = false;

    if (NavigationContext.QueryString.ContainsKey("removePrevious"))
    {
        remove = ((string)NavigationContext.QueryString["removePrevious"]).Equals(bool.TrueString);
        NavigationContext.QueryString.Remove("removePrevious");
    }

    場合 (削除)
    {
        NavigationService.RemoveBackEntry();
    }

このようにして、CurrentPage.xamlをバックスタックから削除するかどうかを決定できます。

于 2012-06-11T15:01:28.553 に答える
1

「NavigationService.RemoveBackEntry()」をどこで呼び出しましたか? スキップしたいページではなく、新しいページで行う必要があると思います。

編集:より良い画像を得るために:あなたはメインページを持っています->最初のサブページ(戻るナビゲーションでスキップする必要があります)->最初のサブページから独立した2番目のサブページ。

2 つのアイデア: 1) 最初のサブページの OnNavigatedFrom-Event で "NavigationService.RemoveBackEntry()" を呼び出してみてください。もう一度戻る。

于 2012-06-11T14:01:02.210 に答える