Silverlight和icollectionview

时间:2009-06-10 13:18:46

标签: c# asp.net wpf silverlight

所以我有一个数据网格,我需要添加自定义排序,我还需要知道排序的确切顺序。

为了做到这一点,我已阅读了我需要实现自定义icollectionview并将其绑定到datagrid。

我遇到的问题是微软在这个界面上提供的文档并不是那么好。有谁知道如何做到这一点或有任何关于如何为silverlight实现此接口的好教程?

5 个答案:

答案 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有更好的选择。 :)