0

BackStackから特定のエントリを削除しようとしていNavigationService.BackStackます。

バック エントリを削除する方法が 1 つあります。つまりNavigationService.RemoveBackEntry();、バック エントリをすべて削除しますstack。だから、私の質問は特定のバックエントリを削除する方法ですか?

からクエリ文字列を削除するにはどうすればよいNavigationService.CurrentSourceですか? Uri無しでリトリーブだけしたいQuery String

前もって感謝します :)

4

2 に答える 2

3

現在のスタック (現在のページ) は隣接するスタックとしかやり取りできないため、特定のバック スタック エンティティを削除することはできません。したがって、前のスタック エンティティのみを削除できます。NavigateTo() 次のページの時点でスタックを削除する必要があります。

于 2013-09-05T12:14:52.757 に答える
-1

私はこのコードでそれを行うことができます。これを page.Loaded イベントに挿入します。

int backstackcounter = this.NavigationService.BackStack.Count();

            for (int i = 0; i < backstackcounter; i++)
            {
               var previousPage = this.NavigationService.BackStack.FirstOrDefault();

                if (previousPage != null && !previousPage.Source.ToString().StartsWith("/LoginPage.xaml"))
                {
                    this.NavigationService.RemoveBackEntry();
                }
            }

「LoginPage.xaml」は、バックスタックに残しておきたいページです。

于 2014-01-24T12:44:22.740 に答える