您的代碼爲我工作。 我試過一個數據源,它是一個DataTable或一個對象列表。
數據源的類型是什麼?
恐怕您使用匿名類型作爲數據源,請記住它是隻讀的,因此您無法更新它。
您可以使用dataTable,或者我可以爲您提供一種將匿名類型轉換爲數據表的方法。
這不起作用:
List<MyClass> myList = new List<MyClass>();
myList.Add(new MyClass() { URL = "A", Path = "1" });
myList.Add(new MyClass() { URL = "B", Path = "2" });
myList.Add(new MyClass() { URL = "C", Path = "3" });
myList.Add(new MyClass() { URL = "D", Path = "4" });
myList.Add(new MyClass() { URL = "E", Path = "5" });
dataGridView1.DataSource = (from a in myList select new
{
URL = a.URL,
Path = a.Path
}).ToList();
private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
var databaseRecordId = e.RowIndex;
dataGridView1.Rows[e.RowIndex].Cells[0].Value = 555;
}
雖然這工作(與布爾列編)
DataTable x = new DataTable();
x.Columns.Add("URL");
x.Columns.Add("PAth");
x.Columns.Add("Boolean");
x.Rows.Add("A", "1", true);
x.Rows.Add("B", "1" , false);
x.Rows.Add("C", "1" , true);
x.Rows.Add("D", "1" , true);
x.Rows.Add("E", "1", true);
x.Rows.Add("F", "1", true);
x.Rows.Add("G", "1",true);
dataGridView1.DataSource = x;
private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
var databaseRecordId = e.RowIndex;
dataGridView1.Rows[e.RowIndex].Cells[2].Value = false;
}
我希望這有助於。
問題只出現在CheckBoxColumn中。 – dovid