所以我有一个数据网格,我需要添加自定义排序,我还需要知道排序的确切顺序。
为了做到这一点,我已阅读了我需要实现自定义icollectionview并将其绑定到datagrid。
我遇到的问题是微软在这个界面上提供的文档并不是那么好。有谁知道如何做到这一点或有任何关于如何为silverlight实现此接口的好教程?
答案 0 :(得分:5)
我正在寻找同样的东西,并从Colin Eberhardt找到了这篇文章。它展示了如何使用ICollectionView
的实现实现排序如果您弄清楚如何实施过滤,请告诉我们。
答案 1 :(得分:2)
Silverlight 3现在支持并实现名为PagedCollectionView的ICollectionView。
这提供了排序和分组,但没有过滤。
答案 2 :(得分:1)
我发现的最好的例子是Microsoft的ICollectionView实现,它是为与DataGrid一起使用而创建的。不幸的是,他们在内部对其进行了标记,因此您无法直接使用它(并且源代码的复制和粘贴需要进行一些修改)。 Bust out Reflector并打开System.Windows.Controls.Data.dll - 导航到System.Windows.Controls命名空间,在那里你可以找到ListCollectionView。以下是显示它实现ICollectionView的定义:
内部类ListCollectionView:ICollectionView,INotifyCollectionChanged,INotifyPropertyChanged,IEnumerable ...
我真的希望MS提供这个课程 - 几乎每个LOB应用程序都需要它。
答案 3 :(得分:0)
以下是使用ICollectionView执行排序的方法。
ICollectionView view = CollectionViewSource.GetDefaultView(someCollection);
view.SortDescriptions.Add(new SortDescription("someProperty", ListSortDirection.Ascending));
view.SortDescriptions.Add(new SortDescription("someOtherProperty", ListSortDirection.Descending));
然而,这并不是我所谓的“自定义排序”...它只是让您选择排序标准和方向。你能更具体地了解你想做什么吗?
答案 4 :(得分:0)
对于浏览此问题的其他人,我发现这些网站也很有用:
我希望Silverlight 5有更好的选择。 :)