사전을 통해 열거하고 ListView에 추가 할 항목을 만듭니다. 그러나 한 줄의 오류가 특히 발생합니다.컬렉션이 수정되었습니다. 열거 연산이 실행되지 않을 수 있습니다.
컬렉션이 수정되었습니다. 열거 연산이 실행되지 않을 수 있습니다. 이 새로운 문자열을 생성 이후 나는 원래 값을 수정 아니에요 때문에 item.Text가 작동이 설정 이유
foreach (KeyValuePair<string, bool> s in test.Value.Properties)
{
ListViewItem item = new ListViewItem();
item.Text = String.Format("{0}", s.Key);
if (s.Value) { item.Checked = true; } // the problem line
listView2.Items.Add(item);
}
나는 이유를 가정합니다. 새 부울을 만들려면 item.Checked = true로 변경하면 제대로 작동하지만 부울은 항상 내가 원하는 바가 아닌 false로 기본값이 설정됩니다.
이 문제를 해결하려면 어떻게해야합니까?
또한 컬렉션 데이터를 foreach로 수정하려고하면 안됩니까? 나는 처음부터 루프를 돌고있는 컬렉션의 데이터를 수정하고 있었기 때문에 문제가 있다고 생각했다. 그러나이 작업은 ListViewItemCollection에서 문제가되는 것으로 보인다.
이것은 내가 작성한 답변입니다. OP는 s 또는 test.Value.Properties를 변경하지 않습니다. 이는이 유형의 예외에 대한 일반적인 원인입니다. – KeithS
아, 그게 다예요. 내가 루프를 통해 컬렉션을 수정 listView2에 대한 ItemCheck 메서드를했다. 해결책을 찾지 못했지만 적어도 범인을 찾았습니다. 고맙습니다! –