我已经实现了如下所示的群组可观察集合。
分组财产
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);
因为每次它创建新列表并绑定到我的视图中。虽然再次表现出色。 提前谢谢。
答案 0 :(得分:1)
我从您的问题中了解到,您希望在不覆盖整个ObservableCollection的情况下推送更新的组。
要做到这一点:
df1 <- readr::read_table(
"ID PMT_DATE
100 2015/01/01
100 2015/02/01
100 2015/04/01
200 2016/01/01
200 2016/02/01"
)
df2 <- readr::read_table(
"ID DATE STATUS
100 2014/12/31 A
100 2015/03/15 B
200 2015/12/31 A
200 2016/06/01 C"
)
这将触发“替换”。目标分组的操作。