fheyn Ответов: 1

Как установить comboboxcolumn, когда элементов datagridview источник данных объекта DataTable


привет,
Я хочу привязать datagridview к datatable. в трех столбцах должен отображаться combobox.

Я не нашел как изменить тип столбца форма textboxcolum на comboboxcolumn
гугл мне не помог. поиск datagridview и comboboxcolumn приносит много ответов, но ни один из них не охватывает мою проблему.

Что я уже пробовал:

на данном datatable я делаю :
dgv.datasource = datatable

это сделает все столбцы в textboxcolumn
так как же мне действовать дальше ?
есть идеи ?
заранее спасибо

1 Ответов

Рейтинг:
1

Maciej Los

Пожалуйста, прочтите это: Как привязать объекты к элементам управления Windows Forms DataGridView | Microsoft Docs[^]

Вывод: вы не можете использовать DataGridViewComboBoxColumn с DataTable как DataSource от DataGridView Взгляните на нижеприведенный фрагмент кода:

public Form1()
{
    InitializeComponent();

    //disable column autogeneration
    dataGridView1.AutoGenerateColumns = false;
    dataGridView1.AutoSize = true;
    //bind sample data
    dataGridView1.DataSource = CustomBindingSource();

    //create columns manually
    //TextBoxColumn
    DataGridViewTextBoxColumn txt = new DataGridViewTextBoxColumn();
    txt.DataPropertyName = "EmpId";
    txt.Name = "EmpId";
    dataGridView1.Columns.Add (txt);

    //ComboBoxColumn
    DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
    combo.DataSource = Enum.GetValues(typeof(Sex));
    combo.DataPropertyName = "Sex";
    combo.Name = "Sex";
    dataGridView1.Columns.Add(combo);

    //that's all!
}


Другие интересные ресурсы:
Как настроить ячейки и столбцы в элементе управления Windows Forms DataGridView, расширив их поведение и внешний вид | Microsoft Docs[^]
Как использовать элементы управления хостом в ячейках Windows Forms DataGridView | Microsoft Docs[^]


Karthik_Mahalingam

5

Maciej Los

Спасибо, Картик.

fheyn

если это единственное решение, то оно не применимо к моему проекту.
datagridview принадлежит к базовой форме, которая подклассирует несколько форм, каждая из которых использует dgv по-разному (количество столбцов варьируется от 5 до 12)
использование показанного решения оставляет мне больше работы, чем у меня есть, заполняя dgv
от каждой подформы.
во всяком случае спасибо за ваш ответ
Франц

Maciej Los

Что ж, боюсь, это единственный выход...

Овации
Мацей