Выпадающий список.Проблема с выбранным элементом

#c# #winforms #visual-studio-2010 #combobox

#c# #winforms #visual-studio-2010 #выпадающий список

Вопрос:

ComboBox привязывает базу данных

 string str= comboBox1.SelectedItem.ToString();
  

в строке указано System.Data.DataRowView значение для str , но не указано имя выбранного элемента.

Ответ №1:

попробуйте это

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

Ответ №2:

Если вам нужен текст выбранного элемента, просто используйте comboBox1.Text .

Ответ №3:

Используйте DisplayMember и ValueMember свойства для выпадающего списка, прежде чем назначать DataSource , и используйте SelectedValue вместо SelectedItem .

Например, если у вас есть List<MyClass> — where MyClass имеет свойство int ID , и еще одно string Title — и вы хотите назначить его в качестве DataSource of comboBox1 , вы должны написать:

 List<MyClass> myList; 
...

comboBox1.DisplayMember = "Title";
comboBox1.ValueMember = "ID";
comboBox1.DataSource = myList;
  

Теперь comboBox1.SelectedValue есть object{int} , который можно привести к int и использовать.

Комментарии:

1. Это дает индекс, но не записывается содержимое

2. это SelectedIndex, я говорю о выбранном значении

3. закрытая пустота comboBox3_SelectedIndexChanged (отправитель объекта, EventArgs e) { label2.Text = comboBox3.SelectedItem. toString(); }

4. ярлык выдает {System.Data.DataView}

5. @Maziar sharon, похоже, хочет использовать выбранный элемент в combobox для заполнения метки текстом … проблема не в привязке данных к самому combobox … это либо привязка к данным и этой метки, либо получение нужного текста из выбранного элемента

Ответ №4:

toString() наследуется от класса Object. В реализации по умолчанию указано имя класса соответствующего объекта.

возможно, вам захочется преобразовать выбранный элемент в DataRowView, чтобы получить доступ к значениям столбца для этой строки

Пример:

 String str = ((DataRowView)comboBox1.SelectedItem)["ColumnNameHere"];