У меня есть ComboBox, который заполняется при загрузке формы. Я получаю данные из базы данных в виде набора данных и использую следующее, чтобы заполнить поле со списком.SelectedValue для combobox возвращает непредвиденное значение
checkBox4_combo.DataSource = ds.Tables[0].DefaultView.ToTable(true,"Work_Location");
checkBox4_combo.DisplayMember = "Work_Location";
checkBox4_combo.BindingContext = this.BindingContext;
Но, когда я пытаюсь получить доступ к элементам этого списка, он возвращает нежелательный результат. Я попробовал следующее:
Метод 1:
object ob = checkBox4_combo.Items[0];
MessageBox.Show(ob.ToString());
//Returns "System.Data.DataRowView"
Способ 2:
checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.SelectedItem;
//OR
object ob = checkBox4_combo.SelectedValue;
MessageBox.Show(ob.ToString());
//Returns "System.Data.DataRowView"
Метод 3:
checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.SelectedText;
MessageBox.Show(ob.ToString());
//Returns <blank>
Но, если я использую:
checkBox4_combo.SelectedIndex = 1;
object ob = checkBox4_combo.Text;
MessageBox.Show(ob.ToString());
Я получу желаемый результат, но это означает, что выбранный текст будет изменен. Таким образом, по существу, я не хотел бы использовать это, и методы 2 & 3.
Теперь, кроме просить решение, я хочу понять, почему выход либо нулевой или «System.Data.DataRowView». Есть ли что-то в том, что я привязываю данные к combobox, что является проблемой? Или это так, как это работает, и я должен придерживаться своего последнего решения?
пытается установить DataMember-свойство вашего Combobox к колонку вы хотите видеть в ваш MessageBox. –
Являются ли значения в данных, которые могут измениться, или они останутся постоянными? Поскольку во второй ситуации вы должны преобразовать данный столбец в список и сделать его источником данных (списки, маловероятные типы данных, являются идеальными типами для источника данных combobox, и именно поэтому они автоматически доставляют желаемое поведение). – varocarbas
@MarcoForberg Извините, но comboboxes в winforms не обладают таким свойством. – varocarbas