单击 Datagrid ColumnHeader 时 - 如何进行排序?以及如何覆盖它?

发布于 2024-11-09 12:59:40 字数 372 浏览 0 评论 0原文

当单击 DataGrid ColumnHeader 时,如果基础数据源是 CollectionView,则数据网格将自动对数据进行排序。

它的内部是如何工作的,它只是将 SortDescriptors() 添加到 View 中以便排序还是利用 IComparer 类?

我认为它宁愿使用 SortDescriptors,因此排序速度很慢。

我做了一些研究,它说使用

CollectionView.CustomSort = 实现 IComparer 的类是更快的方法。

因此,为了尝试这种方法,我如何覆盖 DataGrid 的自动排序机制(当单击列标题时)并使用 CustomSort 进行自己的排序?

对此的任何帮助都将受到高度赞赏。

When clicking on a DataGrid ColumnHeader, the datagrid would automatically sort the data, if the underlying dataSource is a CollectionView.

How does it work internally, does it just add SortDescriptors() to the View in order to sort or does it utilize an IComparer class?

I think its rather using SortDescriptors, hence its so slow in sorting.

I have done some research and it says using

CollectionView.CustomSort = a class implementing IComparer is much faster approach.

So in order to try this approach, how do I override the automatic sorting mechanism of DataGrid - when clicked on a columnheader - and do my own sorting with the CustomSort?

Any help on this is highly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若水般的淡然安静女子 2024-11-16 12:59:40

您可以使用排序事件将为您提供他们用于排序的列以及方向。

You can use the Sorting Event which will give you the Column they are using to sort and in which direction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文