본문 바로가기
핫뉴스 리뷰

C#, DataGridView에 사용자 클래스 붙이기

by 디마드 2011. 5. 31.
C#의 DataGridView 컨트롤에 사용자 클래스를 붙여보자.

일반적으로 DataSet을 바인딩하지만, 확장성을 위해서는 사용자 클래스와의 바인딩이 필요하다. 간단한 예제로 살펴보자.

1. 사용자 클래스 생성

// Instrument라는 Custom Class 생성
public class Instrument
    {
        private string serialNumber;
        private long price;
       
        public string SerialNumber
        {
            get {return serialNumber;}
            set { serialNumber = value; }
        }
        public long Price
        {
            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);

        }

반응형

댓글