Добавьте DataGridViewComboBoxColumn в DataGridView, с разными значениями в каждой строке

Нашел много статей в сети, но безрезультатно для решения, которое я ищу.

Моя задача: добавить DataGridViewComboBoxColumn в datagridview, но каждая строка должна иметь разные значения в соответствующем комбинированном списке.

Это мой код,

dgv.Columns.Clear();
dgv.Rows.Clear();

dgv.Columns.Add("package", "Version");

foreach (DirectoryInfo item in (new DirectoryInfo("E:\\MyProjects")).GetDirectories())
{
    dgv.Rows.Add(item.Name);

}

DataGridViewButtonColumn downloadColumn = new DataGridViewButtonColumn
{
    HeaderText = "Download",
    Name = "download",
    Text = "Download",
    UseColumnTextForButtonValue = true
};

dgv.Columns.Add(downloadColumn);

// Add Combobox column
DataGridViewComboBoxColumn books = new DataGridViewComboBoxColumn();
books.HeaderText = "Books";

books.Items.Add("Book1");
books.Items.Add("Book2");


dgv.Columns.Insert(1, books);

Моя таблица данных

Раскрывающиеся страницы просто пусты. Я попытался поместить books.Items.Add(sub directoryies.Name) в цикл foreach для каждой строки, тогда выпадающий список не получит никаких значений вообще. Я пытаюсь показать подкаталоги в поле со списком. Не уверен, почему он не отображает значения (books.Items по-прежнему имеют элементы, которые я добавил, они просто не отображаются).

Что сводит меня с ума, так это тот же фрагмент кода, который работает на моем домашнем компьютере (Windows 10, Visual Studio 2013, .NET 4.5), но не на моем офисном компьютере (Windows 7, Visual Studio 2012, .NET 4.5). Может кто-нибудь, пожалуйста, помогите!

Я получаю это исключение - DataGridView:System.ArgumentException: значение DataGridViewComboBoxCell недопустимо. Чтобы заменить это диалоговое окно по умолчанию, обработайте событие DataError.

Спасибо заранее!!!!

1 ответ

Исправлена! Поэтому я установил представление сетки данных только для чтения. После выполнения readonly = false все работает как положено!

Другие вопросы по тегам