2013-01-20 1 views
0

테이블에 새 항목을 추가하려고하는데 아래 코드가 InvalidCastException을 던지고 있습니다.테이블에 새 항목을 추가 할 때 InvalidCastException이 발생합니다.

이것은 테이블에 새 항목을 추가하는 항목 추가 페이지에서 가져온 것입니다. WineDate은 DatePicker에서에서 오는 하는 ListPicker에서 WineStars, 그리고 카테고리는 테이블에 연결된 listpicker에서 오는

WineItem newWineItem = new WineItem 
      { 
       WineDate = wineDatepurchasedTextbox.Value.Value.Date, 
       WineComments = wineCommentsTextBox.Text, 
       WineStars = (string)StarList.SelectedItem, 
       WineType = wineTypeTextbox.Text, 
       WineVinyard = wineVineyardTextbox.Text, 
       WineYear = wineYearTextbox.Text, 
       Category = (WineCategory)winecategoriesListPicker.SelectedItem 

      }; 

당신이 날 도와 어떤 추가 정보가 필요하면 알려 주시기 바랍니다.

+0

예외가 많은 도움이 될 것입니다 발생합니다 라인 :, 그렇지 않으면 당신은 클래스를 선언하거나 winecategoriesListPicker.SelectedItem의 유형을 받아 생성자를 만들어야합니다. – Steve

+0

자세한 예외 설명과 함께 테이블 정의 및 스택 추적을 게시하십시오. – Haspemulator

답변

2

캐스팅은 두 번만 수행됩니다. StarList.SelectedItemstring으로 캐스팅하고 winecategoriesListPicker.SelectedItemWineCategory으로 전송 중입니다. 디버거를 부착하고 이 실제로 인 것을 확인하면 잘못된 것을 확인하는 것이됩니다.

가 (이 WineItem에서 속성 세터 아무도 캐스팅을 수행하지 않지만 내가 먼저 확실한 솔루션을거야 있다고 가정합니다.) winecategoriesListPicker.SelectedItem가 WineCategory을 상속하는 클래스는

+0

+1 좋은 캐치 - 깨진 'WineCategory'의 캐스트라는 것은 거의 확실합니다. – dasblinkenlight

+0

감사합니다. 실제로이 코드를 확인하는 동안 실제로 코드가 잘못되어있는 것은 아니지만 해결했습니다. 오류가 실제로 내 XMAL에있었습니다. –

0
Category = (WineCategory)winecategoriesListPicker.SelectedItem 

경우이 작업을 수행 할 수 있습니다 아마

Category = new WineCategory(winecategoriesListPicker.SelectedItem); 
관련 문제