【发布时间】:2010-11-01 19:26:15
【问题描述】:
所以我有一个需要为其添加自定义排序的数据网格,并且我还需要知道排序的确切顺序。
我已经阅读了为了做到这一点,我需要实现一个自定义的 icollectionview 并将其绑定到数据网格。
我遇到的问题是微软在这个界面上提供的文档不是很好。有谁知道如何做到这一点或有任何关于如何为 silverlight 实现此接口的好的教程?
【问题讨论】:
标签: c# asp.net wpf silverlight
所以我有一个需要为其添加自定义排序的数据网格,并且我还需要知道排序的确切顺序。
我已经阅读了为了做到这一点,我需要实现一个自定义的 icollectionview 并将其绑定到数据网格。
我遇到的问题是微软在这个界面上提供的文档不是很好。有谁知道如何做到这一点或有任何关于如何为 silverlight 实现此接口的好的教程?
【问题讨论】:
标签: c# asp.net wpf silverlight
对于浏览此问题的其他人,我发现这些网站也很有帮助:
我希望 Silverlight 5 有更好的选择。 :)
【讨论】:
Silverlight 3 现在支持和实现 ICollectionView,称为 PagedCollectionView。
这提供排序和分组,但不提供过滤。
【讨论】:
我正在寻找相同的内容,并从Colin Eberhardt 找到了这篇文章。它展示了如何使用 ICollectionView 的实现来实现排序
如果您知道如何实现过滤,请告诉我。
【讨论】:
我发现的最佳示例是 Microsoft 的 ICollectionView 实现,它是为与 DataGrid 一起使用而创建的。不幸的是,他们将其标记为内部,因此您不能直接使用它(源代码的复制和粘贴需要一些修改)。取出 Reflector 并打开 System.Windows.Controls.Data.dll - 导航到 System.Windows.Controls 命名空间,在那里您可以找到 ListCollectionView。下面的定义表明它实现了 ICollectionView:
内部类 ListCollectionView:ICollectionView、INotifyCollectionChanged、INotifyPropertyChanged、IEnumerable ...
我真的希望 MS 能够提供这个类 - 几乎每个 LOB 应用都需要它。
【讨论】:
这是使用 ICollectionView 执行排序的方法。
ICollectionView view = CollectionViewSource.GetDefaultView(someCollection);
view.SortDescriptions.Add(new SortDescription("someProperty", ListSortDirection.Ascending));
view.SortDescriptions.Add(new SortDescription("someOtherProperty", ListSortDirection.Descending));
但是,这并不完全是我所说的“自定义排序”......它只是让您选择排序标准和方向。您能否更具体地说明您想做什么?
【讨论】: