我正在开发一个有一些DataGrid
's 的 WPF 项目,其中一些我需要应用自定义排序算法。所以我一直在寻找一种方法来实现这一点,在许多网页中我发现了以下代码:
var myListView = CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource);
ListCollectionView myListCollectionView = myListView as ListCollectionView;
myListCollectionView.CustomSort = new CustomSorter();
.
.
.
public class CustomSorter : IComparer
{
public int Compare(object x, object y)
{
// sorting logic ...
}
}
这似乎是执行自定义排序的一种非常好的方法,但我的问题是我无法将变量myListView
转换为,ListCollectionView
因为它原来是一个BindingListCollectionView
对象,除了缺乏设置自定义排序算法的功能外。
我找到了这个解决方案,但它对我不起作用,因为他们尝试执行以下操作:
ListCollectionView coll = new ListCollectionView(CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource));
但是没有构造函数将 ICollectionView 对象(这是 GetDefaultView 返回的函数)作为参数。
那么,有没有办法将自定义排序算法应用于 BindingListCollectionView 对象?
先感谢您。
编辑:
不幸的是,该解决方案已被放置在一个DataGrid
划分的类中,因为该解决方案必须是通用的。
希望可以有人帮帮我。