1

私が使用するもの:

10 個の Web ブラウザのリスト

tabIndex (現在のウェブブラウザのインデックス)

NavigationService.GoBack() を使用して Mainpage にアクセスするさまざまなページ。

問題:

GoBack() を使用してメインページに移動してナビゲートするたびに、Navigated-event が 1 回以上発生します。これは、サーフィンをした後の大きなパフォーマンスの問題ですが、なぜそれが起こっているのかわかりません.

OnNavigatedTo で何をするか:

count != 10 の場合、webbrowserlist を埋めます (グローバル リスト、1 回だけ発生)

すべてのブラウザにイベントを設定します(問題かもしれませんが、理由は想像できません)

ご協力いただきありがとうございます。

4

1 に答える 1

3

私があなたの問題を理解していれば、ページ間を行き来するにつれて webbrowsers Navigated イベントがますます発生するということです。

コードを見なくても、問題は、メイン ページに戻るたびに、ナビゲートされたイベントをサブスクライブしていることだと思います。次の方法でこれを回避できます。

1)メインページコンストラクターのイベントをサブスクライブします。これは、一度だけ呼び出されるためです

2) ページの OnNavigatedTo イベントでイベントを購読する必要がある場合は、前にこのチェックを行います。

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
                        if (e.NavigationMode != NavigationMode.Back)
                        {
                           webbrowser.tap += someFunction;
                        }
    }

ページに移動するたびにイベントに登録する必要がある場合は、次のようにします。

  protected override void OnNavigatedFrom(NavigationEventArgs e)
    {
       webbrowser.tap -= someFunction;
    } 
于 2012-02-07T14:14:36.497 に答える