代码之家  ›  专栏  ›  技术社区  ›  dariusriggins

使用自定义IComparer对CollectionViewSource进行排序

  •  13
  • dariusriggins  · 技术社区  · 17 年前

    我正在尝试对从CollectionViewSource派生的集合进行排序,该集合只包含用于排序的SortDescriptions。不幸的是,我需要能够使用我自己的自定义IComparer,但我似乎找不到一种方法来做到这一点。想想datagrid,我有自己的多列排序算法。我想一种方法是使用一个集合实现CollectionChanged,它是CollectionViewSource和我的真实数据源之间的一个附加层,但是如果有人有任何建议,我真的更喜欢一种更好的方法。

    1 回复  |  直到 17 年前
        1
  •  17
  •   Martijn Pieters    11 年前

    Bea Stollnitz有一个自定义排序示例 here .

    CollectionViewSource 到 IList 实施,而不是更弱的 ICollection 或 IEnumerable 界面有了这一点 View 属性返回一个 ListCollectionView CollectionView . 然后您可以使用 ListCollectionView.CustomSort 分配 IComparer 进行自定义排序。为了使事情更简单,您还可以使用 Comparer<T>.Create Comparison 委托而不是整个类。