Как я настраиваю DataGridView ComboBoxColumn с другим DataSource в каждой ячейке?

И еще один способ:

  • Перейти к началу строки
  • , перейти в режим визуального блока ( CTRL - v )
  • выберите нужные строки (перемещение вверх / вниз с помощью j / k или переход на строку с помощью [line] G )
  • нажмите I (это заглавная буква i)
  • введите символ (ы) комментария
  • нажмите ESC
11
задан Zach Johnson 18 November 2009 в 05:43
поделиться

2 ответа

У меня работает следующее:

DataGridViewComboBoxColumn newColumn = new DataGridViewComboBoxColumn();
newColumn.Name = "abc";
newColumn.DataSource = new string[] { "a", "b", "c" };
dataGridView1.Columns.Add(newColumn);

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)(row.Cells["abc"]);
    cell.DataSource = new string[] { "a", "c" };
}

Вы также можете попробовать (у меня это тоже работает):

for (int row = 0; row < dataGridView1.Rows.Count; row++)
{
   DataGridViewComboBoxCell cell = 
       (DataGridViewComboBoxCell)(dataGridView1.Rows[row].Cells["abc"]);
   cell.DataSource = new string[] { "f", "g" };
}
21
ответ дан 3 December 2019 в 05:35
поделиться

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

Конечно, это предполагает, что вы привязываете данные к вашей сетке.

0
ответ дан 3 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: