我收到了一个关于Microsoft PresentationFramework的DataGrid的问题:
我有一个ObservableCollection<TestModel>。TestModel是一个简单的类,有20个Int属性...没有更多的东西。在我的测试中,我的ObservableCollection有50个条目。 因此,总共有1000个单元格(20 * 50)。所有这些单元格都同时显示,因此没有虚拟化。
这是我的网格:
<DataGrid AutoGenerateColumns="true" RowHeight="20" ItemsSource="{Binding DataGridModelSource}"/>
在我看来,渲染1000个单元格并不算太多……尽管根据我运行此测试的系统不同,渲染这1000个单元格需要大约1到3秒钟的时间。这还是相当长的时间,不是吗?
我使用了一些自定义的DataGrid,比如来自C1、Infragistics、Mindscape或DX的DataGrid,并且使用这些Grids渲染1000个单元格的时间缩短到了大约100毫秒。
那么Microsoft的DataGrid有什么意义呢?有没有什么方法可以提高性能?我是否遗漏了什么?
PropertyChanged
事件?如果是这样,你是从主线程调用它吗? - user2588666