Заполните текстовое поле и комбинированный список на основе комбинированного списка - Winforms - PullRequest
1 голос
/ 21 января 2012

У меня проблема с моим кодом.Он правильно показывает содержимое комбинированного списка, но всякий раз, когда данные пустые, он не возвращается, например, к пустому.

мой первый комбинированный список - это имя клиента, после того как я щелкнул имя клиента, которое находится в подключенном комбинированном спискев базу данных он должен поместить свой пол в поле со списком.

* обратите внимание, что это форма редактирования, поэтому я собираюсь обновить

Это правильно, если в поле есть ввод,однако, если его значение не сохранено в поле со списком, оно не изменится, если это поле пусто

, например:

выберите клиента 1 * укажите его пол в поле со списком (например, женский) выбрать клиента 2 * пол женский WTF?(учитывая, что пользователь забыл указать свой пол)

***, поэтому моя проблема в том, что если поле пустое, мой поле со списком не будет нулевым, но вместо этого оно сохранит значение предыдущего значения, которое яб.

вот мой код.** combobox1 - это список имен клиентов, combobox2 - это список полов.

private void BindControls() // function to bind the database to the comboBox
        {
           comboBox1.DataSource = _db.Client();
           comboBox1.DisplayMember = "client"; //client names are shown in the combobox
        }


 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
          comboBox2.SelectedItem =    ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2
        }

@@ Элементы в моем поле со списком Gender (combobox2) не привязаны к базе данных. Я просто вручную помещаю туда значениясвойства предметов в выпадающем списке (это особенность визуальной студии)

Большое спасибо!Просто спросите меня, не понятно ли вам, и я добавлю некоторые детали.

1 Ответ

2 голосов
/ 21 января 2012

Попробуйте использовать что-то вроде:

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
      String genderString = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString();

      if (!String.IsNullOrEmpty(genderString))
      {
           comboBox2.SelectedItem = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2
      }
      else
      {
           comboBox2.SelectedIndex = -1;
      }
 }

Он просто устанавливает поле со списком обратно в невыбранное состояние, если пол - пустая строка (я подозреваю, что значения null не должны отображаться в качестве значения этого столбца).

...