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
  • 相关阅读:
    用电脑给手机安装App
    切换皮肤的实现
    瀑布流的简单实现
    HTML5的实用
    HTML5的特性,发展,及使用
    录音的使用步骤
    支付宝集成步骤
    美团(iPad)顶部界面的简单实现, 及开发时常见bug
    真机调试/打包测试/程序发布/内购的具体操作流程
    IOS 触摸事件的处理
  • 原文地址:https://www.cnblogs.com/sczmzx/p/7874175.html
Copyright © 2011-2022 走看看