2009-06-10 4 views
0

항목의 상태를 active = true에서 active = false로 변경하고 그 반대의 경우에도 데이터베이스 테이블에서 변경 사항을 유지해야한다고 가정합니다. 나는 실패C# ListView - control checkBox 이벤트

private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) 
    { 
     ListViewItem item = (ListViewItem)sender; 

     if (item != null) 
     { 
      Book b = (Book) item.Tag; 

      b.MakeActive(item.Checked); 
     } 
    } 

:

나는 다음과 같은 ItemChecked 이벤트를 테스트했다.

아무도 도와 줄 수 있습니까? 이 경우 object sender

+1

있는 ListViewItem 항목 = (있는 ListViewItem) 발송해야 ListView하지 ListViewItem이다; 유효하지 않은 캐스팅 인 경우 예외를 throw하므로 ListViewItem item = sender로 해당 행을 ListViewItem으로 변경해야합니다. 잘못된 캐스트가 null을 반환하기를 원한다면 – Charlie

+0

어떻게 실패했는지 설명하십시오. 예외가 있습니까? 어떤 일이 발생할 것으로 예상됩니까? – tanascius

+0

개인 무효 listView1_ItemChecked (개체 보낸 사람, ItemCheckedEventArgs 전자) { ListViewItem item = (ListViewItem) e.Item; if (item! = null) { if (item.Tag! = null) { Teacher t = ((교사) 항목. 태그); t.TeacherGoesToLeave (item.Checked); } } } 나는 이렇게 성공했습니다. –

답변

1

는 코드가이

private void listView1_ItemChecked(object sender, ItemCheckedEventArgs e) 
{ 
    ListViewItem item = e.Item as ListViewItem; 

    if (item != null) 
    { 
     Book b = (Book) item.Tag; 

     b.MakeActive(item.Checked); 
    } 
}