代码之家  ›  专栏  ›  技术社区  ›  Riyas

如何更新可观察集合组

  •  1
  • Riyas  · 技术社区  · 7 年前

    我已经实现了如下组可观察集合。

    private ObservableCollection<Grouping<String, Request>> _groupedList = null;
    public ObservableCollection<Grouping<String, Request>> GroupedList {
        get {
            return _groupedList;
        }
        set {
            _groupedList = value;
            RaisePropertyChanged(() => GroupedList);
        }
    
    }
    

    正在创建列表

    var list = new List<Request>();
    
    var grouped = from Model in list
                             group Model by Model.Done into Group
                             select new Grouping<string, Request>(Group.Key, Group);
    
    GroupedList = new ObservableCollection<Grouping<string, TModel>>(grouped);
    

    我试过了, mylist.FirstOrDefault(i => i.Id== mymodel.Id) ; 不适合我。

    我需要选择特定的项目,并使用linq或其他工具再次编辑和更新到列表中,但我停留在这里是为了组可观察集合,没有有效的细节来做这件事。,任何人有这个想法请帮助。

    GroupedList = new ObservableCollection<Grouping<string, TModel>>(grouped);
    

    提前谢谢。

    1 回复  |  直到 7 年前
        1
  •  1
  •   David Oliver    7 年前

    我从您的问题中了解到的是,您希望在不覆盖整个ObservableCollection的情况下推送更新的组。

    为此:

    var targetGroup = GroupedList.FirstOrDefault(i => i.Id == mymodel.Id);
    var targetIndex = GroupedList.IndexOf(targetGroup);
    var modifiedGroup = ... //Do whatever you want to do
    GroupedList[targetIndex] = modifiedGroup;
    

    推荐文章