webBrowserNavigated & NavigationService.GoBack () WP7 - PullRequest
1 голос
/ 07 февраля 2012

Что я использую:

список из 10 веб-браузеров

a tabIndex (индекс текущего веб-браузера)

разные страницы, которые используют NavigationService.GoBack () для перехода на главную страницу.

проблема:

каждый раз, когда я использую GoBack () для перехода на главную страницу и навигации, событие Navigated будет запущено еще 1 раз. Это огромная проблема с производительностью после некоторого серфинга, но я не знаю, почему это происходит.

что я делаю в OnNavigatedTo:

заполнить список веб-обозревателей, если считать! = 10 (глобальный список, происходит только 1 раз)

установить события для каждого браузера (может быть, проблема, но не могу понять, почему)

спасибо за вашу помощь.

1 Ответ

3 голосов
/ 07 февраля 2012

Если я понимаю вашу проблему, чем то, что событие 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;
    } 
...