Предотвращение зависания пользовательского интерфейса при отображении таблицы с большим количеством текста - PullRequest
0 голосов
/ 28 июня 2019

Я отображаю таблицу (с ListView).Есть около 30 строк и 100 столбцов.Строки виртуализированы.Большинство столбцов содержат только TextBlock.

После того, как модель сгенерировала данные (в фоновом потоке), пользовательский интерфейс зависает примерно на 5 секунд.В течение этого времени большая часть процессорного времени тратится на измерение TextBlocks (измеряется с помощью dotTrace во время зависания пользовательского интерфейса).

Можно ли как-то улучшить это и / или сохранить ответ пользовательского интерфейса во время рендеринга этихэлементы управления?

Просмотр:

     <ListView ItemsSource="{Binding CollectionView}" 
      VirtualizingStackPanel.VirtualizationMode="Recycling" .../>

ViewModel:

 public class MyCollectionViewModel :ObservableCollection<MyRowViewModel>
 {
   public ListCollectionView CollectionView {get; private set;}
    ...
   CollectionView = new ListCollectionView(this);

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...