첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

TestProject.zip
다운로드

▶ MainForm.cs

using System;
using System.Data;
using System.Data.OleDb;

using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraEditors.Repository;
using DevExpress.XtraGrid.Views.Card;

namespace TestProject
{
    /// <summary>
    /// 메인 폼
    /// </summary>
    public partial class MainForm : XtraForm
    {
        //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
        ////////////////////////////////////////////////////////////////////////////////////////// Public

        #region 생성자 - MainForm()

        /// <summary>
        /// 생성자
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            #region 데이터를 로드한다.

            OleDbConnection connection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\\..\\nwind.mdb");

            OleDbDataAdapter categoryAdapter = new OleDbDataAdapter
            (
                "SELECT CategoryID, CategoryName, Picture FROM Categories",
                connection
            );

            OleDbDataAdapter productAdapter  = new OleDbDataAdapter
            (
                "SELECT CategoryID, ProductID, ProductName, UnitPrice FROM Products",
                connection
            );

            DataSet dataSet = new DataSet();

            categoryAdapter.Fill(dataSet, "Categories");
            productAdapter.Fill (dataSet, "Products"  );

            DataTable categoryTable = dataSet.Tables["Categories"];
            DataTable productTable  = dataSet.Tables["Products"  ];

            DataColumn keyColumn        = categoryTable.Columns["CategoryID"];
            DataColumn foreignKeyColumn = productTable.Columns ["CategoryID"];

            dataSet.Relations.Add("CategoriesProducts", keyColumn, foreignKeyColumn);

            #endregion
            #region 저장소 항목 픽처 에디터를 설정한다.

            RepositoryItemPictureEdit repositoryItemPictureEdit = new RepositoryItemPictureEdit();

            repositoryItemPictureEdit.SizeMode = PictureSizeMode.Stretch;

            #endregion

            this.gridControl.RepositoryItems.Add(repositoryItemPictureEdit);

            CardView cardView = new CardView(this.gridControl);

            cardView.ViewCaption = "Category Products";

            this.gridControl.LevelTree.Nodes.Add("CategoriesProducts", cardView);

            this.gridControl.DataSource = categoryTable;

            this.gridView.RowHeight = 50;

            this.gridView.Columns["CategoryID"].VisibleIndex = -1;

            this.gridView.Columns["Picture"].ColumnEdit               = repositoryItemPictureEdit;
            this.gridView.Columns["Picture"].OptionsColumn.FixedWidth = true;
            this.gridView.Columns["Picture"].Width                    = 180;

            cardView.PopulateColumns(dataSet.Tables["Products"]);

            cardView.Columns["CategoryID"].VisibleIndex = -1;

            cardView.Columns["UnitPrice"].DisplayFormat.FormatType   = FormatType.Numeric;
            cardView.Columns["UnitPrice"].DisplayFormat.FormatString = "c2";

            this.executeButton.Click += executeButton_Click;
        }

        #endregion

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method
        ////////////////////////////////////////////////////////////////////////////////////////// Private

        #region 실행하기 버튼 클릭시 처리하기 - executeButton_Click(sender, e)

        /// <summary>
        /// 실행하기 버튼 클릭시 처리하기
        /// </summary>
        /// <param name="sender">이벤트 발생자</param>
        /// <param name="e">이벤트 인자</param>
        private void executeButton_Click(object sender, EventArgs e)
        {
            int rowHandle = 0;
            
            this.gridView.SetMasterRowExpanded(rowHandle, true);

            CardView cardView = this.gridView.GetDetailView(rowHandle, 0) as CardView;

            cardView.ZoomView();
        }

        #endregion
    }
}
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요