[英]Checkbox column default value in data grid view
我有一個csv spec文件,我已讀入字符串列表。 然后將其添加到datagridview並添加一個復選框列。 我想檢查所有復選框,但沒有任何反應。 嘗試遍歷每行並將值設置為true,還嘗試設置行事件所需的默認值,但是沒有運氣。 有任何想法嗎?
DataTable dtSpecs = new DataTable();
string[] tmpHeaders = specList[0].Split(',');
foreach (var header in tmpHeaders)
{
dtSpecs.Columns.Add(header, typeof(string));
}
for (int i = 1; i < specList.Count; i++)
{
dtSpecs.Rows.Add(specList[i].Split(','));
}
dataGridView2.DataSource = dtSpecs;
DataGridViewCheckBoxColumn ckb2 = new DataGridViewCheckBoxColumn();
ckb2.HeaderText = "Enable";
ckb2.ValueType = typeof(bool);
dataGridView2.Columns.Insert(0, ckb2);
//This didn't work
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
dataGridView2.Rows[i].Cells[0].Value = true;
}
//This way also didn't work
foreach (DataGridViewRow row in dataGridView2.Rows)
{
row.Cells[0].Value = true;
}
//Also tried this but still nothing checked
private void dataGridView2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
e.Row.Cells[0].Value = true;
}
不要混用UI和數據。 由於您將DataTable
用作網格的數據存儲,因此請勿創建網格列,而DataColumn
添加到數據表中。 喜歡:
var dt = new DataTable();
dt.Columns.Add("Enable", typeof(bool));
var names = specList[0].Split(',');
for (int c = 0; c < names.Length; c++)
dt.Columns.Add(names[c]);
for (int i = 1; i < specList.Count; i++)
{
var dr = dt.Rows.Add();
dr[0] = true;
var values = specList[i].Split(',');
for (int c = 0; c < values.Length; c++)
dr[1 + c] = values[c];
}
dataGridView2.DataSource = dt;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.