객체를 GridControl의 DataSource에 바인딩 한 후 컬럼 생성 될때 컬럼의 FieldName과 객체의 속성 값이 일치 해야 GridView에 정상적으로 출력됩니다.

 

FiledName과 일치 하지 않을 경우 출력될 때 빈칸으로 출력이 되는 상황이 발생합니다.

 

아래와 같은 속성들이 있을 때 각 컬럼의 FieldName과 속성들을 매칭한 코드 입니다.

 

this.listGridView.Columns[0].FieldName = "ID";
this.listGridView.Columns[1].FieldName = "Subject";
this.listGridView.Columns[2].FieldName = "UseYN";
this.listGridView.Columns[3].FieldName = "CreateDate";
this.listGridView.Columns[4].FieldName = "UpdateDate";
using System;

namespace InfoListDEV
{
    /// <summary>
    /// InformationModel 클래스 입니다.
    /// </summary>
    public class InformationModel
    {
        #region ID
        /// <summary>
        /// 아이디 입니다.
        /// </summary>
        public string ID { get; set; }

        #endregion
        #region Subject
        /// <summary>
        /// 제목 입니다.
        /// </summary>
        public string Subject { get; set; }

        #endregion
        #region UseYN
        /// <summary>
        /// 사용 여부 입니다.
        /// </summary>
        public string UseYN { get; set; }

        #endregion
        #region CreateDate
        /// <summary>
        /// 생성일 입니다.
        /// </summary>
        public DateTime CreateDate { get; set; }

        #endregion
        #region UpdateDate
        /// <summary>
        /// 수정일 입니다.
        /// </summary>
        public DateTime UpdateDate { get; set; }

        #endregion
        
    }
}

 

 

객체를 GridControl의 DataSource에 바인딩 할 경우 객체 안의 속성들의 이름으로 헤더 이름이 설정 됩니다.

 

이 설정된 헤더 이름을 변경 할 수 있습니다.

 

this.gridView1.Columns[0].Caption = "첫번째 Column Header";
this.gridView1.Columns[1].Caption = "두번째 Column Header";
this.gridView1.Columns[2].Caption = "세번째 Column Header";

하나의 GridControl에 있는 데이터를 또 다른 GridControl로 마우스 드래그 앤 드랍으로 옮길 수 있습니다.

 

물론 옮겼던 데이터를 다시 원래 위치로 옮길 수 있습니다.

 

드래그 앤 드랍을 사용하려면 behaviorManager 컨트롤을 추가해주고

 

여기서 각각의 GridView에 Drag And Drop Behavior를 추가해줘야 합니다.

 

using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using System.Data;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();

            DataTable dataTable = CreateTable();
            SetUpGrid(gridControl1, dataTable);
            SetUpGrid(gridControl2, dataTable.Clone());
        }

        #region CreateTable
        /// <summary>
        /// 테이블을 생성합니다.
        /// </summary>
        /// <returns></returns>
        public DataTable CreateTable()
        {
            DataTable dataTable = new DataTable();
            dataTable.Columns.Add("Column");

            for (int i = 0; i <= 5; i++)
            {
                dataTable.Rows.Add(new object[] { "Item " + i.ToString()});
            }

            return dataTable;
        }

        #endregion

        #region SetUpGrid(gridControl, table)
        /// <summary>
        /// GridView를 설정합니다.
        /// </summary>
        /// <param name="gridControl">gridControl 입니다.</param>
        /// <param name="table">table 입니다.</param>
        public void SetUpGrid(GridControl gridControl, DataTable table)
        {
            GridView view = gridControl.MainView as GridView;
            gridControl.DataSource = table;
            view.OptionsBehavior.Editable = false;
        }

        #endregion
    }
}
  1. 다시보아 2020.07.08 15:31

    잘 보고 갑니다~~

GridControl에서 컨트롤 + A 를 누를 경우 전체 선택이 되지 않습니다.

 

항목들을 모두 선택하고 선택해제 하는 코드 입니다.

 

using System;
using System.Data;
using System.Windows.Forms;

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

            simpleButton1.Click += simpleButton1_Click;
            simpleButton2.Click += simpleButton2_Click;

            gridControl1.DataSource = CreateTable();
        }

        #region CreateTable
        /// <summary>
        /// 테이블을 생성합니다.
        /// </summary>
        /// <returns>table을 반환합니다.</returns>
        DataTable CreateTable()
        {
            DataTable table = new DataTable();
            DataRow dataRow;

            table.Columns.Add("Number", typeof(string));
            table.Columns.Add("Name", typeof(string));
            table.Columns.Add("Date", typeof(string));

            dataRow = table.NewRow();
            dataRow["Number"] = "1";
            dataRow["Name"] = "Sample1";
            dataRow["Date"] = "2019/04/01";
            table.Rows.Add(dataRow);

            dataRow = table.NewRow();
            dataRow["Number"] = "2";
            dataRow["Name"] = "Sample2";
            dataRow["Date"] = "2019/04/05";
            table.Rows.Add(dataRow);

            dataRow = table.NewRow();
            dataRow["Number"] = "3";
            dataRow["Name"] = "Sample3";
            dataRow["Date"] = "2019/04/07";
            table.Rows.Add(dataRow);

            return table;
        }

        #endregion

        #region simpleButton1_Click(sender, e)
        /// <summary>
        /// 버튼을 클릭했을 때 동작합니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            gridView1.SelectAll();
        }

        #endregion

        #region simpleButton2_Click(sender, e)
        /// <summary>
        /// 버튼을 클릭했을 때 동작합니다.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void simpleButton2_Click(object sender, EventArgs e)
        {
            gridView1.ClearSelection();
        }

        #endregion

    }
}

 

+ Recent posts