【问题标题】:Silverlight and icollectionviewSilverlight 和 icollectionview
【发布时间】:2010-11-01 19:26:15
【问题描述】:

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

我已经阅读了为了做到这一点,我需要实现一个自定义的 icollectionview 并将其绑定到数据网格。

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

【问题讨论】:

    标签: c# asp.net wpf silverlight


    【解决方案1】:

    对于浏览此问题的其他人,我发现这些网站也很有帮助:

    我希望 Silverlight 5 有更好的选择。 :)

    【讨论】:

      【解决方案2】:

      Silverlight 3 现在支持和实现 ICollectionView,称为 PagedCollectionView

      这提供排序和分组,但不提供过滤。

      【讨论】:

        【解决方案3】:

        我正在寻找相同的内容,并从Colin Eberhardt 找到了这篇文章。它展示了如何使用 ICollectionView 的实现来实现排序

        如果您知道如何实现过滤,请告诉我。

        【讨论】:

        • 我能够得到文章中的代码来对我的网格进行排序。
        • 链接已失效。
        • ..silverlight 也是如此。同意从文章中复制代码会更好。祝您好运解决您的问题。
        【解决方案4】:

        我发现的最佳示例是 Microsoft 的 ICollectionView 实现,它是为与 DataGrid 一起使用而创建的。不幸的是,他们将其标记为内部,因此您不能直接使用它(源代码的复制和粘贴需要一些修改)。取出 Reflector 并打开 System.Windows.Controls.Data.dll - 导航到 System.Windows.Controls 命名空间,在那里您可以找到 ListCollectionView。下面的定义表明它实现了 ICollectionView:

        内部类 ListCollectionView:ICollectionView、INotifyCollectionChanged、INotifyPropertyChanged、IEnumerable ...

        我真的希望 MS 能够提供这个类 - 几乎每个 LOB 应用都需要它。

        【讨论】:

          【解决方案5】:

          这是使用 ICollectionView 执行排序的方法。

          ICollectionView view = CollectionViewSource.GetDefaultView(someCollection);
          view.SortDescriptions.Add(new SortDescription("someProperty", ListSortDirection.Ascending));
          view.SortDescriptions.Add(new SortDescription("someOtherProperty", ListSortDirection.Descending));
          

          但是,这并不完全是我所说的“自定义排序”......它只是让您选择排序标准和方向。您能否更具体地说明您想做什么?

          【讨论】:

          • 我这里的问题是silverlight实际上没有CollectionViewSource所以我将不得不实现它
          • 好的,我没有意识到 Silverlight 中缺少这个类。奇怪的是,存在 ICollectionView 接口,但似乎没有任何类实现它……甚至 ItemCollection 类也没有(在 WPF 中它确实如此)。奇怪...
          • 是的,很奇怪......而且很烦人。我真的可以使用这个类的实现。
          猜你喜欢
          • 1970-01-01
          • 2016-04-07
          • 1970-01-01
          • 1970-01-01
          • 2020-05-20
          • 1970-01-01
          • 2018-03-02
          • 2010-11-16
          • 2011-01-09
          相关资源
          最近更新 更多