comboBox.SelectedItem问题

时间:2011-06-01 23:14:35

标签: c# winforms visual-studio-2010 combobox

ComboBox是绑定数据库

string str= comboBox1.SelectedItem.ToString();

该行为System.Data.DataRowView提供str值,但未提供所选项目名称。

4 个答案:

答案 0 :(得分:4)

试试这个

if (comboBox1.SelectedItem is DataRowView) {
  string sval = ((DataRowView)comboBox1.SelectedItem).Row["ColumnName"].ToString();
}

答案 1 :(得分:2)

在分配DisplayMember之前,使用组合框的ValueMemberDataSource属性,并使用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"];