2012-08-09 1 views
1

페이지로드 이벤트에서 Dataagridview에 동적으로 데이터를 추가하려고합니다. 그러나 색인이 범위를 벗어났다는 오류가 표시됩니다. ("음수 및 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 개의 행을 사용하지만 하나만 추가하십시오. 아마 문제일까요? –

+0

이것은 DataGrid에 바인딩하기위한 좋은 링크입니다. http://stackoverflow.com/questions/5809816/datagrid-binding-in-wpf – Omzig

답변

1

Add() 대신 Add(3)으로 전화하십시오. 주어진 시간에 필요한만큼의 행을 추가하기 위해 이것을 확장 할 수도 있습니다. MSDN Link

+0

고마워요 .i 모든 질문에 하나의 질문을해야합니다. 모든 행에 두 개의 라디오 버튼을 추가하고 싶습니다. 어떻게해야합니까? – Maddy

1

그리드 행이 없습니다. 당신은 그것을 묶어서는 안되었거나 그것이 가지고있는 행을 초과하고 있어야합니다.

  1. 행에 액세스하기 전에 눈금을 바인딩해야합니다.

  2. 존재하지 않는 행 색인에 액세스하지 않았는지 확인하십시오.

1

하나의 행만 추가하는 것처럼 보입니다. 따라서 행 0에만 액세스 할 수 있습니다. dataGridView1.Rows[1]dataGridView1.Rows[2]과 같은 통화는 3 행을 작성하지 않으면 실패합니다.

설명 :

dataGridView1.Rows.Add();

이렇게하면 DataGridView에 행이 추가됩니다. 따라서 인덱스 0 (행 인덱스는 0에서 시작)의 행이 하나 있습니다.

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

그러나 당신은 인덱스 1 (두 번째 행)와 행에 값을 설정하십시오 : 당신이했던 것처럼 당신은 행 0의 값을 설정할 수 있습니다 만 추가 한 때문에

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

이 실패합니다 한 행 (Rows.Add 번 표시). 세 행을 원하면 셀 값을 설정하기 전에 dataGridView1.Rows.Add(); 번을 세 번 호출하십시오.

+0

설명해 주시겠습니까? – Maddy

+0

자세한 설명을 추가했습니다. –

+0

내가 100 행을 가지고 있다면 dataGridView1.Rows.Add();를 추가해야합니다. 100 배 나쁜 효과. 만약 내가 100 행을 가지고 어떤 해결책이 있습니까 – Maddy

관련 문제