我这里有 一个x:Name="sdf" ComboBox 下拉框控件. ComboBox 显示的值为具体的 coursename .当下拉框SelectionChanged 时. private void sdf_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var course = this.sdf.SelectedItem;//这里也获取到 string 类型的值
CourseID = ((Course)course).courseid; //这里就抱错了.提出 无法将类型为“System.String”的对象强制转换为类型“StudentScoreManage.StudentWebServer.Course” }
Course 类 public class Course
{
public int courseid { get; set; }
public string coursename { get; set; }
}
-----------
我将course转换为Course 类 应该是可以的.请各位高手给点提示或思想!谢谢!
{
var course = this.sdf.SelectedItem;//这里也获取到 string 类型的值
CourseID = ((Course)course).courseid; //这里就抱错了.提出 无法将类型为“System.String”的对象强制转换为类型“StudentScoreManage.StudentWebServer.Course” }
Course 类 public class Course
{
public int courseid { get; set; }
public string coursename { get; set; }
}
-----------
我将course转换为Course 类 应该是可以的.请各位高手给点提示或思想!谢谢!
解决方案 »
- 真的困惑了,我想只要真正的高手才能解答这个问题!
- c/s程序之间的调用问题
- 请问在.NET 1.1环境下学习C#可以吗?
- C#:对于抽象类的应用范围,和学习资料请大家指点,菜鸟接触不多谢谢高手们,还有接口,(期待您的回答)
- 请问为什么动态生成的table的边框现实的时候很宽,打印时更宽,有什么解决的办法,请指点代码不合理处
- 求解 C#串口API结构字的声明 问题
- (急)关于点击按钮打开Excel文件的问题
- 急!不知道有多少列,如何取出表中的所有数据?
- Xml文档的读写有几种方法,请简单介绍?
- 大家推荐推荐讲API的书
- 如何获得C#(winform) datagridview 中combobox选中值
- C#如何读取excel2007?
你可以先实例化一个Course,然后把coursename的值赋进去LZ结贴吧~
http://www.cnblogs.com/kaixun001/archive/2009/02/17/1392817.html这篇文章 作者可以完成阿!
Course 实例 是从数据库中获取到的.也就是 ComboBox coursename 是从数据库来的.
但我想在另外一个事件里 将获取到的string 类型转换为 对应的 id 值.将起 插入到数据库里.可能是我没有说明白吧!抱歉!
var CitAlly = this.CBox_City.SelectedItem;
int CityID = ((city)CitAlly).id;//....
public struct city
{
public int id { get; set; }
public string name { get; set; }
}
而我用的是 calss.我再修改修改!
struct 与class 的区别不会影响结果吧!??
private void TabControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
StudentWebServiceSoapClient sws = new StudentWebServiceSoapClient();
sws.GetSelectCourseNameCompleted += new EventHandler<GetSelectCourseNameCompletedEventArgs>(sws_GetSelectCourseNameCompleted);
sws.GetSelectCourseNameAsync();
} void sws_GetSelectCourseNameCompleted(object sender, GetSelectCourseNameCompletedEventArgs e)
{
//throw new NotImplementedException();
sdf.ItemsSource = e.Result.Select(p => p.coursename);
sdf.SelectedIndex = 0;
}
这里你先调试看看course的类型是什么
抱错 提示
无法将类型为“System.String”的对象强制转换为类型“StudentScoreManage.StudentWebServer.Course”
--
course Type :object {string}
sdf.ItemsSource = e.Result;
试试
public class Course
{
public int courseid { get; set; }
public string coursename { get; set; }
public override string ToString()
{
return coursename;
}
}
恩.转换的时候得 转换 Course对象.而不能具体的值.这是可行的.但问题是ComboBox , sdf.ItemsSource = e.Result; 返回的值却不为具体的string 值了阿?
DataGridView. SelectionChanged 指的是DataGridViewCell 的变更。你可以查MSDN 找到。
所以this.sdf.SelectedItem是一个DataGridViewCell 对象。你强制转换对象不对应,当然抛出异常了~~~