防止在渲染包含大量文本的表期间冻结UI

时间:2019-06-28 09:26:30

标签: c# wpf

我正在显示一个表(带有ListView)。大约有30行和100列。 这些行已虚拟化。大多数列只包含一个TextBlock。

模型生成数据(在后台线程中)后,UI冻结约5秒钟。 在这段时间内,大部分的CPU时间都用于测量TextBlocks(在UI冻结期间使用dotTrace进行测量)。

在渲染这些控件期间,有什么方法可以改善此效果和/或保持UI响应吗?

查看:

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

ViewModel:

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

 }

0 个答案:

没有答案