본문 바로가기
C#/DevExpress

DevExpress - GridControl DataSource 쉽게 설정하는 법

by 샤나엘 2020. 9. 28.
반응형

안녕하세요.

오늘은 DevExpress의 GridControl에 데이터를 쉽게 연결해서 Grid에 표시하는 법에 대한 포스팅을 하도록 하겠습니다.

 

Grid에 데이터를 연결하는 방법은 쉽습니다.

따로 컬럼 정의를 안해도 됩니다.

 

 

 

첫번째로는 Grid에 보여주고 싶은 형태로 클래스를 만들어야 합니다.

아래처럼 데이터 클래스를 만들고, 각각의 속성을 정의하면 정의된 속성대로 Grid의 컬럼으로 나타납니다.(빨간색으로 정의된 부분들입니다.

        public class Data 
        { 
            public string Data1 { get; private set; } 
            public string Data2 { get; private set; } 
            public double Data3 { get; private set; } 

            public Data(string data1, string data2, double data3) 
            { 
                this.Data1 = data1; 
                this.Data2 = data2; 
                this.Data3 = data3; 
            } 
        }

 

두번째로 정의된 클래스의 인스턴스를 만들어서 List형태로 가지고 있으면 됩니다.

아래처럼 List에 Data에 해당하는 값들을 설정해서 넣었습니다.

Data에 들어있는 값들이 Grid의 값에 해당하게 됩니다.

        private List<Data> GetDataList()
        {
            List<Data> dataList = new List<Data>();
            dataList.Add(new Data("A", "AAA", 1));
            dataList.Add(new Data("B", "BBB", 2));
            dataList.Add(new Data("C", "CCC", 3));
            dataList.Add(new Data("D", "DDD", 4));

            return dataList;
        }

 

세번째로 이제 Grid에 List를 연결해주면 됩니다.

연결하는 방법은 List를 그대로 DataSource에 설정해주면 됩니다.

            List<Data> dataList = GetDataList();

            this.gridControl1.DataSource = dataList;

이렇게 하면 Grid에 아무런 설정을 하지 않아도 Data에 해당하는 속성과 값들로 Grid의 Column과 Row가 저절로 설정되어 나타납니다.

 

네번째는 실행해서 잘 나타나는지 확인하면 됩니다.

별다른 설정을 하지 않아도 아래처럼 Grid에 컬럼과 값들이 잘 나타나는 걸 볼 수 있습니다.

 

전체코드는 아래와 같습니다.

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            List<Data> dataList = GetDataList();

            this.gridControl1.DataSource = dataList;
        }

        private List<Data> GetDataList()
        {
            List<Data> dataList = new List<Data>();
            dataList.Add(new Data("A", "AAA", 1));
            dataList.Add(new Data("B", "BBB", 2));
            dataList.Add(new Data("C", "CCC", 3));
            dataList.Add(new Data("D", "DDD", 4));

            return dataList;
        }

        public class Data
        {
            public string Data1 { get; private set; }
            public string Data2 { get; private set; }
            public double Data3 { get; private set; }

            public Data(string data1, string data2, double data3)
            {
                this.Data1 = data1;
                this.Data2 = data2;
                this.Data3 = data3;
            }
        }
    }
}

 

디자인 부분은 Form위에 GridControl을 위치시키고 부모 컨테이너에서 도킹을 하시면 됩니다.

반응형

댓글