ComboBox是绑定数据库
string str= comboBox1.SelectedItem.ToString();
该行为System.Data.DataRowView
提供str
值,但未提供所选项目名称。
答案 0 :(得分:4)
试试这个
if (comboBox1.SelectedItem is DataRowView) {
string sval = ((DataRowView)comboBox1.SelectedItem).Row["ColumnName"].ToString();
}
答案 1 :(得分:2)
在分配DisplayMember
之前,使用组合框的ValueMember
和DataSource
属性,并使用SelectedValue
代替SelectedItem
。
例如,如果您有List<MyClass>
- 其中MyClass
有一个属性int ID
,另一个string Title
- 并且您希望将其指定为{{ 1 {} DataSource
,你应该写:
comboBox1
现在List<MyClass> myList;
...
comboBox1.DisplayMember = "Title";
comboBox1.ValueMember = "ID";
comboBox1.DataSource = myList;
是comboBox1.SelectedValue
,可以投放到object{int}
并使用。
答案 2 :(得分:2)
如果您需要所选项目的文字,只需使用comboBox1.Text
。
答案 3 :(得分:1)
ToString()继承自Object-Class。默认实现声明了相应对象的类名。
您可能希望将SelectedItem强制转换为DataRowView以访问该行的列值
例如:
String str = ((DataRowView)comboBox1.SelectedItem)["ColumnNameHere"];