【问题标题】:Sorting Two Combo Boxes Differently in WPF在 WPF 中对两个组合框进行不同的排序
【发布时间】:2009-09-22 18:08:16
【问题描述】:

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

这样的事情有可能吗?

谢谢

【问题讨论】:

    标签: .net wpf sorting combobox


    【解决方案1】:

    CollectionView 就是为此而生的:http://bea.stollnitz.com/blog/?p=38

    【讨论】:

      【解决方案2】:

      如何在 WPF 中对列表框和组合框进行排序 http://www.kudzuworld.com/Blogs/Tech/20070815A.en.aspx

      由于 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();
      

      【讨论】:

      • 正确的方法是在 ItemsSource 上使用 CollectionView。您可以在一个来源上拥有多个 CollectionView,每个都有不同的排序描述,
      • @Robert Harvey:集合保持不变,从数据库或其他任何地方读取一次。将有两个 CollectionView 客户端对象用作 ItemsSource,作为表示和数据收集之间的额外层。
      • 我最初所做的(有两个不同的项目列表)是我只点击了一次数据库,但我复制了我的第一个。效果很好。
      猜你喜欢
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 2017-03-29
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多