일반적으로 DataSet을 바인딩하지만, 확장성을 위해서는 사용자 클래스와의 바인딩이 필요하다. 간단한 예제로 살펴보자.
1. 사용자 클래스 생성
// Instrument라는 Custom Class 생성
public class Instrument
{
private string serialNumber;
private long price;
public string SerialNumber
{
get {return serialNumber;}
set { serialNumber = value; }
}
{
get { return price; }
set { price = value; }
}
}
2. DataGridView와 Instrument 클래스 바인딩 (디자인 타임)
(1) DataGridView의 DataSource속성에서 Instrument 클래스를 바인딩 한다.
(2) DataGridView의 열편집(마우스 우클릭하면 메뉴보임) 모드로 들어가면 바인딩 된 필드들이 보인다.
3. DataGridView에 데이터 집어 넣기 및 데이터 확인
// 추가 버튼 클릭시 이벤트 처리
private void btnAdd_Click(object sender, EventArgs e)
{
// 그리드가 여러개의 행으로 구성됨으로 반드시 배열로 만들어야 한다.
Instrument[] ins = new Instrument[3];
ins[0] = new Instrument();
ins[0].SerialNumber = "1";
ins[0].Price = 10;
ins[1] = new Instrument();
ins[1].SerialNumber = "2";
ins[1].Price = 20;
ins[2] = new Instrument();
ins[2].SerialNumber = "3";
ins[2].Price = 30;
dataGridView1.DataSource = ins;
}
// 그리드뷰 더블클릭시 데이터 확인
private void dataGridView1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// DataSource속성이 Object를 반환함으로 반드시 적절한 타입캐스팅을 필요.
Instrument[] ins = (Instrument[])dataGridView1.DataSource;
MessageBox.Show(ins[dataGridView1.CurrentRow.Index].SerialNumber);
}
'핫뉴스 리뷰' 카테고리의 다른 글
볼수록 신기한 아이팟 마술 (0) | 2011.06.16 |
---|---|
아이폰배터리 수명늘리기 6계명 + 하나 더 (0) | 2011.05.27 |
모바일 UX 기획하기 - 프로세스 (0) | 2011.05.26 |
댓글