获得标题显示的错误信息。但我想要的是从datatable读取一行,插入我的日历控件,然后删除该行,然后读取下一行,插入,然后删除下一行。
但是我收到了这个错误
以下是我的代码
for (int i = 0; i < dtRowCount; i++)
{
var tempName = tempDT.Rows[i]["IDENT"].ToString();
c = new Contact();
c.FirstName = tempDT.Rows[0]["IDENT"].ToString();
c.Tag = tempDT.Rows[0]["EVENT_ID"].ToString();
_calendar.Schedule.Contacts.Add(c);
_calendar.Contacts.Add(c);
for (int j = 0; j < dtRowCount; j++)
{
if (tempName == tempDT.Rows[j]["TAG_IDENT"].ToString())
{
#region Appointment
var app = new Appointment();
app.HeaderText = tempDT.Rows[i]["NAME"].ToString();
exlStarTime = tempDT.Rows[i]["START"].ToString();
DateTime myStartDate = DateTime.ParseExact(exlStarTime,
"dd-MMM-yy hh.mm.ss.fffffff00 tt",
System.Globalization.CultureInfo.InvariantCulture);
exlEndTime = tempDT.Rows[i]["END"].ToString();
DateTime myEndDate = DateTime.ParseExact(exlEndTime,
"dd-MMM-yy hh.mm.ss.fffffff00 tt",
System.Globalization.CultureInfo.InvariantCulture);
app.Tag = tempDT.Rows[i]["TYPE_CODE"].ToString();
app.StartTime = myStartDate;
app.EndTime = myEndDate;
app.Contacts.Add(c);
_calendar.Schedule.Items.Add(app);
ItemStyle style = app.Style;
style.HeaderTextColor = Color.White;
style.Brush.Image = "none";
switch (tempDT.Rows[i]["EVENT_TYPE_CODE"].ToString())
{
case event1Color:
style.Brush.Color = Color.OrangeRed;
break;
case event2Color:
style.Brush.Color = Color.Orange;
break;
case event3Color:
style.Brush.Color = Color.DodgerBlue;
break;
}
#endregion
tempDT.Rows[j].Delete();
//j = j - 1;
j = j + 1;
}
}
}
大thx
答案 0 :(得分:1)
我认为问题是由于您正在修改您正在迭代的Collection。 解决它的最简单方法是分两步完成。 首先,在日历中插入所需的所有内容,然后在完成插入后,开始删除它们。
答案 1 :(得分:0)
这是因为删除所有行后需要调用AcceptChanges()方法。
tempDT.AcceptChanges();
我希望这对你有用!