C# 错误集合被修改;枚举操作不能执行。如何在选中列表框上的选定值后进行数据绑定?
我使用以下代码选择下一个列表项或复选框中的第一个列表项:C# 错误集合被修改;枚举操作不能执行。如何在选中列表框上的选定值后进行数据绑定?,c#,asp.net,data-binding,checklistbox,C#,Asp.net,Data Binding,Checklistbox,我使用以下代码选择下一个列表项或复选框中的第一个列表项: var calculateRate = cancellation.CancellationCalculateRates; foreach (ListItem item in chkListRate.Items) { chkListRate.DataBind(); >>> Error Collection was modified; enumerati
var calculateRate = cancellation.CancellationCalculateRates;
foreach (ListItem item in chkListRate.Items)
{
chkListRate.DataBind(); >>> Error Collection was modified; enumeration operation may not execute.
var cancel = ConverterHelper.To<int>(item.Value);
item.Selected = calculateRate.Any(i => i.CancellationId.Equals(cancel));
}
var calculateRate=cancellation.cancellationcalculates;
foreach(chkListRate.Items中的ListItem项)
{
chkListRate.DataBind();>>>错误集合已修改;枚举操作可能无法执行。
var cancel=将帮助转换为(项目值);
item.Selected=calculateRate.Any(i=>i.CancellationId.Equals(cancel));
}
如何在选中列表框上的选定值之后进行数据绑定?正如错误消息所述,在枚举期间不能修改集合(
foreach
)。因此,不允许删除和插入<代码>复选框列表。数据绑定正在修改它,因此会导致错误
但不清楚你到底想做什么。您正在对每一项都进行数据绑定,这似乎毫无意义,不是吗?所以我的建议是删除chkListRate.DataBind()代码>来自循环:
foreach (ListItem item in chkListRate.Items)
{
var cancel = ConverterHelper.To<int>(item.Value);
item.Selected = calculateRate.Any(i => i.CancellationId.Equals(cancel));
}
foreach(chkListRate.Items中的ListItem项)
{
var cancel=将帮助转换为(项目值);
item.Selected=calculateRate.Any(i=>i.CancellationId.Equals(cancel));
}