0

我正在尝试向表中添加一个新项目,但是下面的代码抛出了 InvalidCastException。

这是从添加项目页面将新项目添加到我的表中。WineDate 来自 DatePicker,WineStars 来自 ListPicker,Category 来自链接到表格的 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

            };

如果您需要任何进一步的信息来帮助我,请告诉我。

4

2 回答 2

2

您只执行了两次转换:您正在转换StarList.SelectedItem为 astring并且您正在转换winecategoriesListPicker.SelectedItem为 a WineCategory。您应该附加调试器并查看这些值实际上是什么以确定您做错了什么。

(这假设没有任何属性设置器WineItem执行强制转换,但我首先要寻找明显的解决方案。)

于 2013-01-20T23:31:08.293 回答
0
Category = (WineCategory)winecategoriesListPicker.SelectedItem

如果winecategoriesListPicker.SelectedItem是继承 WineCategory 的类,则可以这样做,否则必须声明这样的类或创建接受以下类型的构造函数winecategoriesListPicker.SelectedItem

Category = new WineCategory(winecategoriesListPicker.SelectedItem);
于 2013-01-20T23:58:19.703 回答