【问题标题】:How can I sort ObservableCollection? [duplicate]如何对 ObservableCollection 进行排序? [复制]
【发布时间】:2013-05-09 20:31:40
【问题描述】:

我试过了:

Persons = from i in Persons orderby i.Age select i;

但我无法将 Linqs System.Linq.IOrderedEnumerable 转换为 ObservableCollection<Person>

【问题讨论】:

    标签: c#


    【解决方案1】:

    你只需要创建它的一个新实例。

    Persons = new ObservableCollection<Person>(from i in Persons orderby i.Age select i);
    

    【讨论】:

    • 这可能会破坏任何使用ObservableCollection的绑定。
    • @DavidS 如果包含它的类实现了IPropertyNotifyChanged 并且集合的属性设置正确,那么这应该不是问题。
    • 它不会破坏任何东西,你只需要使用一些类来通知数据的更新
    • 如果您每次都要替换整个东西,那么使用ObservableCollection 真的没有任何意义。
    【解决方案2】:

    ObservableCollection 可以从其构造函数中获取IEnumerable&lt;T&gt;(即,在本例中为您的IOrderedEnumerable):

    http://msdn.microsoft.com/en-us/library/cc679169.aspx

    【讨论】:

      【解决方案3】:

      您可能只想从排序后的枚举中创建一个新的ObservableCollection

      【讨论】:

        猜你喜欢
        • 2017-01-17
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-01
        相关资源
        最近更新 更多