【发布时间】:2013-02-16 12:09:47
【问题描述】:
我正在开发一个 WPF 项目,该项目有一些 DataGrid,其中一些我需要应用自定义排序算法。所以我一直在寻找一种方法来实现这一点,在许多网页中我发现了以下代码:
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 对象,除了缺少设置自定义排序算法的功能。
我找到了this 解决方案,但它对我不起作用,因为他们尝试执行以下操作:
ListCollectionView coll = new ListCollectionView(CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource));
但是没有构造函数将 ICollectionView 对象(这是 GetDefaultView 函数返回的)作为参数。
那么,有没有办法将自定义排序算法应用于 BindingListCollectionView 对象?
提前谢谢你。
编辑:
不幸的是,该解决方案已被放置在 DataGrid devided 类中,因为该解决方案必须是通用的。
希望有人可以帮助我。
【问题讨论】: