我已经重写了一个ListCollectionView,只延迟加载那些需要显示的项目。
我在DataGrid中使用这个ListCollectionView来显示和编辑项目。
这工作得很好,就像它应该做的那样。
我的问题是:我希望用户能够通过单击DataGrid列来对标题进行排序。因为我只在需要的时候延迟加载项目,所以ListCollectionView在排序那些还没有加载的项目时做得很糟糕。
解决这个问题的一种方法是加载所有的项目,但我不想这样做,因为这可能会在相当长的时间内加载太多的项目。
相反,我希望得到通知,并告诉我的(远程)数据源将预先排序的项交给我。
有没有一种简单的方法可以截取DataGrid或者(更好的) ListCollectionView中的排序,然后我自己来做呢?
发布于 2010-12-10 01:53:34
如果您需要数据虚拟化,codeplex上有一个专门的库。您所要做的就是实现以下方法:
public IList<T> LoadRange(int startIndex, int count,
SortDescriptionCollection sortDescriptions, out int overallCount)在此方法中,您可以调用WCF-service并返回排序和截断的列表。这个库不容易理解,但它可以工作。
https://stackoverflow.com/questions/4399995
复制相似问题