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个单元格.那是相当多的,不是吗?
我使用DataGrids
C1,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 次 |
最近记录: |