C # DataGridView комбобокс добавить данные программно - PullRequest
0 голосов
/ 07 сентября 2011

Этот вопрос, возможно, уже задавался здесь, но я не могу его найти, поэтому я задаю его сам.

У меня есть приложение с DataGridView.Один из столбцов имеет тип Combobox.Я хочу добавить пункты для этого комбинированного списка программно.Вот код, который я использую для этого:

this.dsStatussen = this.statussenMan.getAllStatussen();
        DataGridViewComboBoxColumn cd = (DataGridViewComboBoxColumn)this.dgvEenheden.Columns[3];
        cd.DataSource = dsStatussen;
        cd.DisplayMember = "statussen";
        cd.DataPropertyName = "sid";
        cd.ValueMember = "status";

Затем, когда я пытаюсь добавить строку, я получаю следующую ошибку: «Нет поля с именем статуса».Я перевел ошибку на английский, потому что у меня ошибка на голландском.Вот код, который я использую для добавления строк:

Eenheden eenhedenMan = new Eenheden(objEvenement.eid);
        DataSet EenhedenData = eenhedenMan.getAllEenheden();

        foreach (DataRow dr in EenhedenData.Tables[0].Rows)
        {
            dgvEenheden.Rows.Add(
                                    dr[0].ToString(), 
                                    dr[1].ToString(), 
                                    dr[2].ToString(), 
                                    Convert.ToInt32(dr[6]), 
                                    dr[3].ToString(), 
                                    dr[4].ToString(), 
                                    dr[5].ToString()
                                );
        }

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

ваш, Бернхард

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

по своему опыту я обнаружил, что все, кажется, работает лучше, если вы связали это через связующий источник, а затем установили

bindingScource.dataScource.Rows.Add( 
                                    dr[0].ToString(),  
                                    dr[1].ToString(),  
                                    dr[2].ToString(),  
                                    Convert.ToInt32(dr[6]),  
                                    dr[3].ToString(),  
                                    dr[4].ToString(),  
                                    dr[5].ToString() 
                                ); 
0 голосов
/ 12 сентября 2011

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

 int index = dropdown.SelectedIndex();

 for(int count = 0; count < dgvEenheden.Rows.Count; count ++)
{
   if (dgvEenheden.Rows[count].Cells["<enter col name here>"].Value.ToString().equals(dropdown.Items[index].Text))
{
    dgvEenheden.Rows[count].Selected = true; //to select the Row
    dgvEenheden.Rows[count].Cells[<Cell Number>].Selected = true; //to select the specific Cell

}
}
...