我有工作日清单
DataGrid
ItemsSource="{Binding Path=MyConceptItems}"
然后我从json其他列表中获取,并尝试使用日期匹配:
public ObservableCollection<MyDataConcept> MyConceptItems { get; set; }
public void GetSheet(string fd, string ld){
string period = "\"" + fd + "\",\"" + ld + "\"";
string result = Task.Run(() => MyMethodAsync("getsheet", GetApiKeyAsync(), "," + period)).
GetAwaiter().GetResult();
MyObject resultparsed = new JavaScriptSerializer().Deserialize<MyObject>(result);
foreach (var item in resultparsed.result.items) {
foreach (var existingItem in MyConceptItems) {
if (existingItem.DateColumn == item.entryDate) {
existingItem.PColumn = item.pName;
existingItem.TColumn = item.aName;
existingItem.HSpend = item.formattedDuration;
}}}};
我的问题是:当我从json获取
然后在MyConceptItems中只显示一个(最后一个)项,可能会被覆盖。
:
MyConecptItems
:
Date | PColumn
2018-09-03 | A2
2018-09-04 | B
2018-09-05 | C2
Json
:
Date | PName
2018-09-03 | A
2018-09-03 | A2
2018-09-04 | B
2018-09-05 | C
2018-09-05 | C2
更新:
foreach (var item in resultparsed.result.items) {
foreach (var existingItem in MyConceptItems) {
if (existingItem.DateColumn == item.entryDate)
if (existingItem.IsExist == false){
existingItem.IsExist = true;
existingItem.ProjectColumn = item.projectName;
existingItem.TaskColumn = item.activityName;
existingItem.HoursSpend = item.formattedDuration;
}
else
{
MyConceptItems.Add(new MyDataConcept(item.entryDate, item.entryDayName,
item.projectName, item.activityName, item.formattedDuration);
}
}}
但我要传达这样一个信息:
System.InvalidOperationException:
'Collection was modified; enumeration operation may not execute.'