2014-02-17 2 views
0

I CheckListBox에서 선택할 수있는 다음 코드 중 다음 목록 항목 또는 첫 번째 목록 항목이 : 나는 후 CheckListbox에 값을 선택 데이터 바인딩 수있는 방법오류 수집이 수정되었습니다. 열거 연산이 실행되지 않을 수 있습니다. CheckListbox에서 선택한 값을 사용하면 DataBind를 어떻게 사용할 수 있습니까?

 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)); 
     } 

?

답변

0

오류 메시지에서 말하는 것처럼 열거 형 (foreach) 중에는 컬렉션을 수정할 수 없습니다. 따라서 삭제 및 삽입은 허용되지 않습니다. CheckBoxList.DataBind이 오류를 수정하고 있습니다.

하지만 실제로 무엇을하려고하는지 명확하지 않습니다. 당신은 무의미한 것처럼 보이는 모든 항목에 대해 목록을 데이터 바인딩하고 있습니까? 따라서 루프에서 chkListRate.DataBind();을 제거하는 것이 좋습니다.

foreach (ListItem item in chkListRate.Items) 
{ 
    var cancel = ConverterHelper.To<int>(item.Value); 
    item.Selected = calculateRate.Any(i => i.CancellationId.Equals(cancel)); 
}