向表中添加新项时InvalidCastException
本文关键字:新项时 InvalidCastException 添加 | 更新日期: 2023-09-27 17:54:53
我正在尝试添加一个新项目到表中,但是下面的代码正在抛出InvalidCastException。
这是从add item页面添加到我的表中的新项。WineDate来自一个日期选择器,WineStars来自一个列表选择器,Category来自一个链接到表的列表选择器
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
};
如果您需要任何进一步的信息来帮助我,请告诉我。
您只执行两次强制转换:您将StarList.SelectedItem
强制转换为string
,并且您将winecategoriesListPicker.SelectedItem
强制转换为WineCategory
。您应该附加调试器并查看这些值实际上是什么,以确定您做错了什么。
(这假设WineItem
中的属性设置器都不执行强制转换,但我将首先使用明显的解决方案。)
Category = (WineCategory)winecategoriesListPicker.SelectedItem
如果winecategoriesListPicker.SelectedItem
是一个继承WineCategory的类,你可以这样做,否则你必须声明这样一个类或创建一个接受winecategoriesListPicker.SelectedItem
类型的构造函数:
Category = new WineCategory(winecategoriesListPicker.SelectedItem);