此枚举器绑定到的列表已被修改.只有在列表未更改的情况下才能使用枚举器
本文关键字:列表 枚举 情况下 绑定 修改 | 更新日期: 2023-09-27 18:04:13
我创建了下面的代码,它从未给我任何错误:
foreach (var item in clb_frente_campos.CheckedItems)
{
if (item == "numero_carteira")
{
clb_frente_impressao.Items.Add(item);
break;
}
else
{
if (!clb_frente_impressao.Items.Contains(item))
{
clb_frente_impressao.Items.Add(item);
break;
}
}
}
此代码是一个按钮,用于将checked
值从一个CheckedListBox
传递到另一个
注意,虽然项目numero_carteira
是checked
,但它将被反复添加到我的另一个CheckedListBox
中。因为项目numero_carteira
是唯一可以多次添加的项目。但我希望他只在selected
时添加,这就是我制作这个新代码的原因:
foreach (var item in clb_frente_campos.CheckedItems)
{
if (item == "numero_carteira")
{
if (clb_frente_campos.SelectedItem.ToString() == "numero_carteira")
{
clb_frente_impressao.Items.Add(item);
break;
}
}
else
{
if (!clb_frente_impressao.Items.Contains(item))
{
clb_frente_impressao.Items.Add(item);
break;
}
}
}
这个新代码就是标题中的error
也是我见过的最奇怪的事情。当我使用breakpoints
并逐步调试它时。。。它是如何工作的?为什么?
如果它在使用调试器时有效,那么几乎可以肯定会出现线程问题。在没有看到其余代码的情况下进行调试是很困难的,但我的直觉是要寻找可能在clb_frente_impressao.Items
上循环的其他地方。