Sorting ObservableCollection
本文关键字:ObservableCollection Sorting | 更新日期: 2023-09-27 17:53:28
假设我有雇员类别为
的ObservableCollection
public ObservableCollection<Employee> employeeCollection = new ObservableCollection<Employee>();
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
public double MobileNumber { get; set; }
public string City { get; set; }
public int Age { get; set; }
public Employee() {}
}
现在我正试图排序ObservableCollection
(" employeeCollection ")通过用户从组合框[中适当的选择,它将是....按名字排序....按手机号码等排序[..]
,并且需要返回排序的可观察集合....意味着它不应该是" var "的形式,它应该是ObservableCollection<Employee>
所以我可以把它分配回“ItemsControl”
的“ItemsSource”
属性…
谢谢…
您可以对集合的视图排序,而不是对集合本身排序:
// xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
<myView.Resources>
<CollectionViewSource x:Key="ItemListViewSource" Source="{Binding Itemlist}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="SortingProperty" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</myView.Resources>
然后你可以使用CollectionViewSource作为ItemSource:
ItemsSource="{Binding Source={StaticResource ItemListViewSource}}"
我认为PVitt可能有最好的解决方案…然而,我发现了这个sortedoservablecollection类,可能会有帮助?
http://softcollections.codeplex.com/我实现了一个ObservableCollectionView
,它支持排序和过滤使用lambda(像LINQ但live)和项目跟踪:
您不需要自己排序,但可以让WPF为您排序。例如,参见SortDescription