2013-07-31 6 views
1

사용자가 여러 줄을 선택할 수있는 목록 상자가 있습니다.이 목록 상자에는 기본적으로 사용자가 가지고있는 애완 동물 목록이 들어 있으며, 각 애완 동물에는 참조가 있고, 애완 동물 이름이 표시되며 각각 항목 값 구성원의 해당 애완 동물의 참조입니다.목록 상자에서 여러 값 멤버 가져 오기

 string lvCat; 
     foreach (Object selectedCat in lstCustCats.SelectedItems) 
     { 
      lvCat = selectedCat as String; 
      DataRow Cats = dSSystem.Bookings_Cats.NewRow(); 
      Cats["BookRef"] = lblBookingRefR.Text; 
      Cats["CatRef"] = lvCat; 
      dSSystem.Bookings_Cats.Rows.Add(Cats); 
      this.bookings_CatsTableAdapter.Update(this.dSSystem.Bookings_Cats); 
     } 

이 코드는 첫 번째 항목을 가져옵니다 : 사용자가 목록 상자에서 여러 애완 동물을 선택한 경우, 나는 그들을 처리 할 수 ​​있도록 값 회원의 각을 끌어 싶습니다, 지금까지 내가 가지고있는 코드입니다 각 선택된 항목에 대한 목록 상자 내에서, 그러나 이것을 수행 할 수있는 방법에 대한 아이디어는 목록 상자를 반복하지 않습니다. lstCustCats.SelectedItems의 항목이 문자열이 아니기 때문에

감사

+1

중단 점을 설정하고 'lstCustCats.SelectedItems'에 선택한 항목이 실제로 포함되어 있는지 확인 했습니까? – PoweredByOrange

+0

이 코드는 모든 선택된 ListBoxItem에 대해 반복해야하며, 실패를 볼 수 없습니다! foreach는 어떻게 작동합니까? SelectedItems의 첫 번째 객체를 가져온 후에 종료 하시겠습니까? 어쩌면 당신은 방금 하나를 선택 했습니까? – makim

+0

마지막 문장을보다 자세하게 설명하십시오. 첫 번째 항목은 무엇입니까? "각 선택된 항목에 대해"아무 것도 얻지 못하면 어떻게 그것을 _ 반복하지 않을까요 _? – DonBoitnott

답변

1

당신은, 잘못 lvCat = selectedCat as String;을 위해 노력하고 있습니다. 내가 중복으로 flaging있어

lvCat = selectedCat.ToString(); 

이 작동해야하지만 this에 빌어 먹을 가까이. 해당 코드를 실행 한 후 lvCat 클래스 이름을 얻은 경우 클래스는 selectedCat입니다. 이 경우 selectedCat을 해당 유형으로 캐스팅하고 거기에서 계속하십시오.

+0

'selectedCat'가 커스텀 타입 인 경우,'ToString()'을 실행하면 (객체가이 메소드를 오버라이드하지 않는다고 가정 할 때) 객체 타입을 반환 할 것이고,이 경우 쓸모가 없습니다. 그는 객체를 어떤 유형으로 던지기 위해 객체를 캐스팅해야하고 그 객체의 속성/메소드에 액세스해야합니다. – PoweredByOrange

+0

@PoweredByOrange 사용자 정의 유형이라면 적어도 어떤 유형인지 알 수 있습니다. 답변에 추가하겠습니다. –

관련 문제