.net 在WPF中对两个组合框进行不同排序

.net 在WPF中对两个组合框进行不同排序,.net,wpf,sorting,combobox,.net,Wpf,Sorting,Combobox,我在表单中有两个组合框,它们具有确切的itemssource属性。两个组合框都需要排序,但排序方式不同。一个按ID(数字)排序,另一个按名称(字母)排序 有可能做这样的事吗 谢谢如何在WPF中对列表框和组合框进行排序 由于WPF不为其组合框提供“排序顺序”属性,因此需要两个不同的集合 在我上面提供的链接中,一位评论员使用ListCollectionView对象发布了以下方法以获得自定义排序。这允许使用数据源中的单个集合,同时添加额外的集合层进行排序: // Using System.Compo

我在表单中有两个组合框,它们具有确切的itemssource属性。两个组合框都需要排序,但排序方式不同。一个按ID(数字)排序,另一个按名称(字母)排序

有可能做这样的事吗


谢谢

如何在WPF中对列表框和组合框进行排序

由于WPF不为其组合框提供“排序顺序”属性,因此需要两个不同的集合

在我上面提供的链接中,一位评论员使用ListCollectionView对象发布了以下方法以获得自定义排序。这允许使用数据源中的单个集合,同时添加额外的集合层进行排序:

// Using System.ComponentModel;
ListCollectionView view = new ListCollectionView (channel.Members);
view.SortDescriptions.Add(new SortDescription("lastName", ListSortDirection.Ascending);
view.SortDescriptions.Add(new SortDescription("firstName", ListSortDirection.Ascending); 
view.CustomSort = new IComparerImplementation; //Do this if you want a custom sort;
view.Refresh();

CollectionView就是为此而创建的:

正确的方法是在ItemsSource上使用CollectionView。您可以在一个源上拥有多个CollectionView,每个都有不同的排序描述,@Robert Harvey:Collection保持不变,从数据库或其他任何地方读取一次。将有两个CollectionView客户端对象用作ItemsSource,作为演示和数据收集之间的额外层。我最初做的是(有两个不同的项目列表)只访问数据库一次,但我复制了第一个数据库。结果很好。