Добавление элементов в комбинированный список в DataGridView - PullRequest
0 голосов
/ 15 марта 2011

У меня есть DataGridView в приложении winforms. Помимо 4 столбцов, поступающих из таблицы db, мне нужно показать дополнительный столбец с комбинированным списком в представлении данных [возможно, используется DataGridViewComboColumn?]. 2. А затем я хочу добавить разные наборы элементов в каждый выпадающий список для каждой строки.

Как мне это сделать?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Вы можете попытаться добавить их через DataBindingComplete сетки

Что-то в этих строках

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
       if (row.Cells[0] is DataGridViewComboBoxCell && row.Index == 1)
          (row.Cells[0] as DataGridViewComboBoxCell).Items.Add("A");
       else
          (row.Cells[0] as DataGridViewComboBoxCell).Items.Add("B");
    }
}

Надеюсь, это поможет РЕДАКТИРОВАТЬ

(row.Cells[0] as DataGridViewComboBoxCell).Value = (row.Cells[0] as DataGridViewComboBoxCell).Items[0];

Когда выбрана эта ячейка, будет показано выбранное первое значение

0 голосов
/ 27 января 2015

Я искал ответ на этот вопрос в VB.NET, но нашел ответ C # здесь.

В VB вы можете сделать:

Private Sub DataGridView1_DataBindingComplete(sender As Object, e As DataGridViewBindingCompleteEventArgs) Handles DataGridView1.DataBindingComplete

    For Each row As DataGridViewRow in DataGridView1.Rows
        If TypeOf row.Cells(0) Is DataGridViewComboBoxCell AndAlso row.Index = 1 Then
            TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("A")
        Else
            TryCast(row.Cells(0), DataGridViewComboBoxCell).Items.Add("B")
        End If
    Next

End Sub

Для редактирования:

TryCast(row.Cells(0), DataGridViewComboBoxCell).Value = TryCast(row.Cells(0), DataGridViewComboBoxCell).Items(0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...