Ser*_*hov 8 sorting wpf datagrid icollectionview
当您单击a中的列标题时,这是默认的排序方法DataGrid.当基础列表包含100,000个项目时,刷新视图大约需要20秒.SortDescription在a上设置s 时可以观察到相同的延迟CollectionView.
通过使用ListCollectionView.CustomSort或通过排序和重新分配列表进行排序几乎立即起作用.
为什么会这么拖延?这只是对绑定属性的"反思税"吗?
你是对的,这是一种反思税.前段时间我对DataGrid的性能非常仔细,并且反思在这里是一个瓶颈.无论排序算法有多快,它们都不会在两次比较之间缓存属性值.所以,即使你有n*ln(n)比较,n == 100 000你也会得到~1 000 000次操作.每个操作数使用反射来获取值,因此您有2 000 000次调用税收反映:) ... ListCollectionView.CustomSort这里是理想的解决方案.
PS:在一天结束时,我们编写了基于ListView的网格,因为我们对DataGrid渲染性能也不满意......但这是另一个故事:)
| 归档时间: |
|
| 查看次数: |
2589 次 |
| 最近记录: |