2013-02-06 98 views
1

我有一個Windows Form與dgv。現在只是爲了表示目的,所以我使用虛擬數據來填充一行數據。我還有一個名爲Add New Row的按鈕,只需在每次單擊它時在dataGridView中添加新的空行。對於DGV的初始填充我這樣使用load活動形式:Windows窗體 - 向數據綁定數據添加新行

private void Form1_Load(object sender, EventArgs e) 
{ 
    dataGridView1.AutoGenerateColumns = false; 

    MyData td13 = new MyData(); 

    td13.colorCombinationColumn = "aff"; 

    td13.remarksColumn = "abcdddd"; 

    td13.prodColumn = true; 

    td13.LastModifiedColumn = "ab"; 

    td13.ByColumn = "abc"; 

    MyData[] arr = new MyData[2]; 
    arr[0] = td13; 

    dataGridView1.DataSource = arr; 

} 

哪裏MyData是這個類:

到目前爲止好,但後來我加我的按鈕,處理他的click事件:

private void btnAddRow_Click(object sender, EventArgs e) 
{ 
    SoleData[] arr = new SoleData[1]; 
    dataGridView1.DataSource = arr; 
} 

而這裏是事情出錯的地方。如果我只是dataGridView1.Rows.Add(1);是說Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.。正如你看到我嘗試了其他一些方法,但迄今沒有成功。

+0

不綁定到'Array',使用'BindingList' –

+0

MyData類和SoleData之間的關係是什麼? –

+0

我編輯它的代碼中的錯誤。 – Leron

回答

2

嘗試使用BindingList<MyData>而不是MyData[] arr。 您對列表所做的任何修改都將反映在DGV中,無需進一步的代碼。 (另外,將該列表聲明爲表單的私有字段。)

+0

現在工作,謝謝。會接受這個答案。 – Leron

相關問題