zoukankan      html  css  js  c++  java
  • ObservableCollection 分组后排序报错问题

    ObservableCollection通过Move方法可以移动顺序,如下:

    将ObservableCollection中的一个item置顶:

    private ObservableCollection<GroupListInfo> _disCussItems;
    private void TopItem(string groupName)
    {
      var info = _disCussItems.FirstOrDefault(m => m.GroupName == groupName);
       if (info == null) return;
    var index = _disCussItems.IndexOf(info);
        if (index < 0) return;
         _disCussItems.Move(index, 0);  
    }
    View Code

    但是当ObservableCollection分组后,

    var vw = CollectionViewSource.GetDefaultView(_disCussItems);

    vw.GroupDescriptions.Add(new PropertyGroupDescription("TimeGroup"));//按TimeGroup字段分组

    Move方法就会出现错误,

    大概猜测排序后每个组的index都是在各自的组内,最后只能做一个兼容的操作:

    就是在调用Move方法之前,先清空分组;

    待move方法完成后,在调用分组功能,具体如下:

    private ObservableCollection<GroupListInfo> _disCussItems;
    private void TopItem(string groupName)
    {
      var info = _disCussItems.FirstOrDefault(m => m.GroupName == groupName);
       if (info == null) return;
       var vw = CollectionViewSource.GetDefaultView(_disCussItems);
       vw.GroupDescriptions.Clear();
       var index = _disCussItems.IndexOf(info);
       if (index < 0) return;
        _disCussItems.Move(index, 0);  
        vw.GroupDescriptions.Add(new PropertyGroupDescription("TimeGroup"));
    }
    View Code
  • 相关阅读:
    Codeforces Round #700 (Div. 2)
    2020-2021 ACM-ICPC Brazil Subregional Programming Contest
    Codeforces Round #699 (Div. 2)
    2021牛客寒假算法基础集训营3
    2021牛客寒假算法基础集训营1
    Educational Codeforces Round 103 (Rated for Div. 2)
    Codeforces Round #697 (Div. 3)
    Codeforces Round #696 (Div. 2)
    2017 ECNA Regional Contest
    spring的aop详解
  • 原文地址:https://www.cnblogs.com/sczmzx/p/7874175.html
Copyright © 2011-2022 走看看