2012-08-09 58 views
1

我在頁面加載事件中動態地在datagridview中添加數據。但是我收到一個錯誤,指出索引超出範圍。 (「必須爲非負且小於DataGridView中collection.parameter名的大小。」)指數超出範圍。必須是非負數,並且小於datagridview中collection.parameter名稱的大小?

以下是代碼:

 dataGridView1.Rows.Add(); 

     dataGridView1.Rows[0].Cells[0].Value = "Basic"; 
     dataGridView1.Rows[0].Cells[1].Value = "Basic"; 
     dataGridView1.Rows[1].Cells[0].Value = "PDALLW"; 
     dataGridView1.Rows[1].Cells[1].Value = "Professional Development Allow"; 
     dataGridView1.Rows[2].Cells[0].Value = "BPAllw"; 
     dataGridView1.Rows[2].Cells[1].Value = "Business Promotion Allowance"; 
+0

您在這裏使用3行,但只添加一行。也許這是問題? – 2012-08-09 13:11:23

+0

這是綁定到DataGrid的好鏈接。 http://stackoverflow.com/questions/5809816/datagrid-binding-in-wpf – Omzig 2012-08-09 13:13:12

回答

1

撥打Add(3)而不是Add()。您還可以擴展此功能以在任何給定時間添加所需的行數。 MSDN Link

+0

感謝它的工作。我需要問一個問題,我想在每一行上添加兩個單選按鈕,我該怎麼做? – Maddy 2012-08-09 13:34:50

1

網格沒有行。你不能捆綁它,或者你超過了它所擁有的行數。

  1. 確保在訪問其行之前綁定網格。

  2. 確保您不訪問不存在的行索引。

1

您似乎只添加一行。因此只能訪問第0行。除非創建了三行,否則像dataGridView1.Rows[1]dataGridView1.Rows[2]這樣的調用將會失敗。

說明:

dataGridView1.Rows.Add();

這會向DataGridView添加一行。所以你有一行索引爲0(行索引從0開始)。因爲你做了你可以爲0行設定值:

dataGridView1.Rows[0].Cells[0].Value = "Basic"; 

但你嘗試設定值與指數1(第二行)與行:

dataGridView1.Rows[1].Cells[0].Value = "PDALLW"; 

這將失敗,因爲你只有加入一行(稱爲Rows.Add一次)。如果您需要三行,請在設置單元格值之前撥打dataGridView1.Rows.Add();三次。

+0

我不明白請陳述我 – Maddy 2012-08-09 13:16:43

+0

我已經添加了詳細的解釋。 – 2012-08-09 13:21:36

+0

如果我有100行比我需要添加dataGridView1.Rows.Add();它的壞影響是100倍。有沒有解決方案,如果我有100行 – Maddy 2012-08-09 13:24:37

相關問題