Rob*_*gel 6 c# wpf performance datagrid mvvm
我刚才有一个关于Microsofts PresentationFramework的问题DataGrid:
我有一个ObservableCollection<TestModel>.TestModel是一个简单的类,具有20个Int属性......仅此而已.在我的测试中,我有50个参赛作品ObservableCollection.总的来说,我有1000个细胞(20*50).所有这些单元格都会立即显示,因此实际上无法实现虚拟化.
这是我的网格:
<DataGrid AutoGenerateColumns="true" RowHeight="20" ItemsSource="{Binding DataGridModelSource}"/>
Run Code Online (Sandbox Code Playgroud)
在我看来,要呈现的1000个单元格不是很多......虽然它需要,取决于我运行此测试的系统,大约需要1到3秒来渲染这些1000个单元格.那是相当多的,不是吗?
我使用DataGridsC1,Infragistics,Mindscape或DX中的一个定制进行了相同的测试,并且使用所有这些网格将渲染这1000个单元的时间减少到大约100ms.
那么微软有DataGrid什么意义呢?有什么方法可以改善性能吗?我错过了什么吗?
使用 BindingList ( https://msdn.microsoft.com/en-us/library/ms132679%28v=vs.110%29.aspx ) 而不是 ObservableCollection。问题是你必须自己实现分组、排序等,但它应该更快。
您可以做的其他事情是简化当前主题的样式。您可以使用https://wpfinspector.codeplex.com/来查找某些内容(即使它是默认的 Windows 主题)
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |