2013-01-20 58 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

大概在拋出異常將有很大的幫助就行了。 – Steve

+0

用詳細的異常描述發佈你的表定義和堆棧跟蹤。 – Haspemulator

回答

2

您只會執行兩次演員:您正在將StarList.SelectedItem轉換爲string,並且您將winecategoriesListPicker.SelectedItem轉換爲WineCategory。你應該附加調試器,並查看這些值實際上是是要確定你做錯了什麼。

(這裏假設所有的屬性setter的WineItem進行鑄造,但我首先要對顯而易見的解決方案。)

+0

+1好看 - 這是一個幾乎可以肯定的是,它是'WineCategory'的劇組被破壞了。 – dasblinkenlight

+0

謝謝你。雖然沒有什麼是我的代碼實際上是錯誤的,但檢查後我解決了這個問題。 該錯誤實際上是在我的XMAL中 –

0
Category = (WineCategory)winecategoriesListPicker.SelectedItem 

如果winecategoriesListPicker.SelectedItem是繼承WineCategory類,你可以這樣做,否則你必須聲明這樣的類或創建接受winecategoriesListPicker.SelectedItem類型構造函數:

Category = new WineCategory(winecategoriesListPicker.SelectedItem); 
相關問題