Как добавить элемент управления checkbox в datatable?

Как я могу добавить флажок к datatable и привязать его к datagrid?

DataTable ColumnList = new DataTable();
ColumnList.Columns.Add("Column Fields");

int j = 1, i = 0;
CheckBox colCheckbox = new CheckBox();
foreach (Columns col in ColumnNames)
{
    colCheckbox.Name = col.ColumnName;       
    ColumnList.Rows.Add(colCheckbox); // This is getting displayed as System.Windows.Forms.CheckBox,CheckState=0
}

Пожалуйста, помогите.

Ответы

Ответ 1

В DataTable должно быть поле boolean (столбец). Когда вы привязываете DataTable к DataGridView, для этого поля boolean будет создан столбец флажка.

Пример кода:

var dt = new DataTable();
dt.Columns.Add(new DataColumn("Selected", typeof(bool))); //this will show checkboxes
dt.Columns.Add(new DataColumn("Text", typeof(string)));   //this will show text

var dgv = new DataGridView();
dgv.DataSource = dt;

Это привяжет dt DataTable к dgv DataGridView. DataGridView автоматически отобразит DataGridViewCheckBoxColumn для первого DataColumn ( Selected) и DataGridViewTextBoxColumn для второй DataColumn (Text).

Ответ 2

Вы должны указать тип столбца.

ColumnList.Columns.Add("Column Fields", gettype(CheckBox)); 

Но почему вы хотите добавить элемент управления в DataTable? Почему не просто строка или целое число?