2016-01-13 3 views
0

Я пытаюсь добавить значение по умолчанию в свой combobox, который был заполнен с помощью источника данных. Проверьте изображение ниже:C# - Добавление значения в поле со списком, заполненное привязкой данных?

Windows form

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

Вот код дизайнер:

this.comboBox2.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.vRSTEPROBLEMABindingSource, "NAZIV", true)); 
     this.comboBox2.DataSource = this.vRSTEPROBLEMABindingSource1; 
     this.comboBox2.DisplayMember = "NAZIV"; 
     this.comboBox2.FormattingEnabled = true; 
     this.comboBox2.Location = new System.Drawing.Point(89, 51); 
     this.comboBox2.Name = "comboBox2"; 
     this.comboBox2.Size = new System.Drawing.Size(173, 21); 
     this.comboBox2.TabIndex = 4; 
     this.comboBox2.Text = "Svi"; 
     this.comboBox2.ValueMember = "NAZIV"; 
+0

Вам нужно будет добавить значение по умолчанию в источник привязки, прежде чем устанавливать его как источник данных. – msmolcic

+0

Как это сделать? – exort

ответ

0

Я нашел решение, нет никакого способа, чтобы добавить элементы, которые combobox данные связаны. То, что вы можете сделать, это заполнить пункты в List, а затем добавить их в поле со списком. Вот код:

  // your connection string + open connection 
      OracleConnection conn = new OracleConnection(global::IssueTracker.Properties.Settings.Default.ConnectionString); 
      conn.Open(); 

      // data adapter 
      OracleDataAdapter oa = new OracleDataAdapter("select naziv from vrsteproblema", conn); 
      DataSet ds = new DataSet(); 
      oa.Fill(ds, "vrsteproblema"); 

      // put entries into a list 
      List<string> comboNazivi = new List<string>(); 
      foreach (DataRow row in ds.Tables["vrsteproblema"].Rows) 
      { 
       comboNazivi.Add(row["naziv"].ToString()); 
      } 

      // add custom entry 
      comboBox2.Items.Add("Svi"); 
      // fill the rest from the list 
      for (var i = 0; i < comboNazivi.Count; i++) { 
       comboBox2.Items.Add(comboNazivi[i]); 
      } 

      // dont forget to close conn 
      conn.Close();