Catel WPF - отставание при смене экрана

Я использую Catel в своем приложении, и у меня проблема со сменой экранов.

У меня есть ленточная навигация и ContentPresenter для экрана. Когда я нажимаю кнопку ленты, я изменяю свойство ActiveView в своей ViewModel.

Это выглядит так:

<ContentPresenter Margin="5 5 5 0" Content="{Binding ActiveView, Converter={StaticResource ViewModelToViewConverter}}" />

ActiveView - это ViewModel моего UserControl для определенного представления.

Проблема в том, что каждый раз, когда я меняю экран (нажимаю кнопку ленты), у меня возникает задержка ~ 100 мс, что очень раздражает.

Я также пробовал использовать DataTemplates для ContentPresenter, но с ним нет повышения производительности.

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

Конечно, я проверяю это на выпуске сборки (на отладке гораздо больше лагов) :)


person Tomasz    schedule 08.06.2015    source источник


Ответы (1)


Ознакомьтесь с соображениями по производительности в документации. Несколько советов:

  1. Вы пробовали без подключенного отладчика?
  2. Есть ли прослушиватели журналов, выполняющие много работы?
  3. Включите Apicop, чтобы увидеть, какие функции вы не используете, но на которые у вас уходит время. Затем вы можете отключить их.

Вероятно, это элемент управления, ищущий InfoBarMessageControl (который можно просто отключить).

person Geert van Horrik    schedule 08.06.2015