我已经实现了如下所示的组可观察集合。
分组属性
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);
因为每次它创建新列表并绑定到我的视图中。不过,这又是一次大的表现。提前致谢。