Share via


연습: 복합 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기

Windows 응용 프로그램에서 폼에 데이터를 표시할 때 도구 상자에서 기존 컨트롤을 선택하거나, 응용 프로그램에 표준 컨트롤에서 사용할 수 없는 기능이 필요한 경우 사용자 정의 컨트롤을 제작할 수 있습니다. 이 연습에서는 ComplexBindingPropertiesAttribute를 구현하는 컨트롤을 만드는 방법을 보여 줍니다. ComplexBindingPropertiesAttribute를 구현하는 컨트롤은 데이터에 바인딩될 수 있는 DataSource와 DataMember 속성을 포함합니다. 이러한 컨트롤은 DataGridViewListBox와 유사합니다.

컨트롤 제작에 대한 자세한 내용은 디자인할 때 Windows Forms 컨트롤 개발을 참조하십시오.

데이터 바인딩 시나리오에서 사용할 컨트롤을 제작할 때 다음 데이터 바인딩 특성 중 하나를 구현해야 합니다.

데이터 바인딩 특성 사용

TextBox와 같이 데이터의 단일 열(또는 속성)을 표시하는 단순 컨트롤에서 DefaultBindingPropertyAttribute를 구현합니다. 자세한 내용은 연습: 단순 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기를 참조하십시오.

DataGridView와 같이 데이터의 목록(또는 테이블)을 표시하는 컨트롤에서 ComplexBindingPropertiesAttribute를 구현합니다. 이 프로세스는 이 연습 페이지에 설명되어 있습니다.

ComboBox와 같이 데이터의 목록(또는 테이블)뿐만 아니라 단일 열이나 속성도 표시해야 하는 컨트롤에서 LookupBindingPropertiesAttribute를 구현합니다. 자세한 내용은 연습: 조회 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기를 참조하십시오.

이 연습에서는 테이블의 데이터 행을 표시하는 복잡한 컨트롤을 만듭니다. 이 예제에서는 Northwind 샘플 데이터베이스의 Customers 테이블을 사용합니다. 복잡한 사용자 정의 컨트롤은 사용자 정의 컨트롤의 DataGridView에 있는 Customers 테이블을 표시합니다.

이 연습을 통해 다음과 같은 작업 방법을 배웁니다.

  • Windows 응용 프로그램을 만듭니다.

  • 프로젝트에 새 사용자 정의 컨트롤을 추가합니다.

  • 사용자 정의 컨트롤을 시각적으로 디자인합니다.

  • ComplexBindingProperty 특성을 구현합니다.

  • 데이터 소스 구성 마법사를 사용하여 데이터 집합을 만듭니다.

  • 데이터 소스 창Customers 테이블을 설정하여 복잡한 새 컨트롤을 사용합니다.

  • 새 컨트롤을 데이터 소스 창에서 Form1으로 끌어 놓아 추가합니다.

사전 요구 사항

이 연습을 완료하려면 다음과 같은 요건이 필요합니다.

Windows 응용 프로그램 만들기

첫 단계에서는 Windows 응용 프로그램을 만듭니다.

새 Windows 프로젝트를 만들려면

  1. Visual Studio의 파일 메뉴에서 새 프로젝트를 만듭니다.

  2. 프로젝트 이름을 ComplexControlWalkthrough로 지정합니다.

  3. Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 Windows 기반 응용 프로그램 만들기를 참조하십시오.

    ComplexControlWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.

프로젝트에 사용자 정의 컨트롤 추가

이 연습에서는 사용자 정의 컨트롤에서 복잡한 데이터 바인딩 가능 컨트롤을 만들기 때문에 프로젝트에 사용자 정의 컨트롤 항목을 추가해야 합니다.

프로젝트에 사용자 정의 컨트롤을 추가하려면

  1. 프로젝트 메뉴에서 사용자 정의 컨트롤 추가를 선택합니다.

  2. 이름 영역에 ComplexDataGridView를 입력한 다음 추가를 클릭합니다.

    ComplexDataGridView 컨트롤이 솔루션 탐색기에 추가되고 디자이너에서 열립니다.

ComplexDataGridView 컨트롤 디자인

이 단계에서는 사용자 정의 컨트롤에 DataGridView를 추가합니다.

ComplexDataGridView 컨트롤을 디자인하려면

  • DataGridView도구 상자에서 사용자 정의 컨트롤의 디자인 화면으로 끌어 놓습니다.

필요한 데이터 바인딩 특성 추가

데이터 바인딩을 지원하는 복잡한 컨트롤의 경우 ComplexBindingPropertiesAttribute를 구현할 수 있습니다.

ComplexBindingProperties 특성을 구현하려면

  1. ComplexDataGridView 컨트롤을 코드 뷰로 전환합니다. 보기 메뉴에서 코드를 클릭합니다.

  2. ComplexDataGridView에서 코드를 다음과 같이 바꿉니다.

    <System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")>
    Public Class ComplexDataGridView
    
        Public Property DataSource() As Object
            Get
                Return DataGridView1.DataSource
            End Get
            Set(ByVal value As Object)
                DataGridView1.DataSource = value
            End Set
        End Property
    
        Public Property DataMember() As String
            Get
                Return DataGridView1.DataMember
            End Get
            Set(ByVal value As String)
                DataGridView1.DataMember = value
            End Set
        End Property
    End Class
    
    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")]
        public partial class ComplexDataGridView : UserControl
        {
            public object DataSource
            {
                get{ return dataGridView1.DataSource; }
                set{ dataGridView1.DataSource = value; }
            }
    
            public string DataMember
            {
                get{ return dataGridView1.DataMember; }
                set{ dataGridView1.DataMember = value; }
            }
    
            public ComplexDataGridView()
            {
                InitializeComponent();
            }
        }
    }
    
  3. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

데이터베이스에서 데이터 소스 만들기

이 단계에서는 Northwind 샘플 데이터베이스의 Customers 테이블을 기반으로 데이터 소스 구성 마법사를 사용하여 데이터 소스를 만듭니다. 연결을 만들려면 Northwind 샘플 데이터베이스에 액세스할 수 있는 권한이 있어야 합니다. Northwind 샘플 데이터베이스 설치에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하십시오.

데이터 소스를 만들려면

  1. 데이터 메뉴에서 데이터 소스 표시를 클릭합니다.

  2. 데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.

  3. 데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.

  4. 데이터 연결 선택 페이지에서 다음 중 하나를 수행합니다.

    • Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.

      또는

    • 새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다. 자세한 내용은 연결 추가/수정 대화 상자(일반)를 참조하십시오.

  5. 데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.

  6. 응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

  7. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  8. Customers 테이블을 선택한 다음 마침을 클릭합니다.

    NorthwindDataSet이 프로젝트에 추가되고 Customers 테이블이 데이터 소스 창에 나타납니다.

ComplexDataGridView 컨트롤 사용을 위한 Customers 테이블 설정

데이터 소스 창 내에서 항목을 폼에 끌기 전에 만들어질 컨트롤을 설정할 수 있습니다.

ComplexDataGridView 컨트롤에 바인딩되도록 Customers 테이블을 설정하려면

  1. 디자이너에서 Form1을 엽니다.

  2. 데이터 소스 창에서 Customers 노드를 확장합니다.

  3. Customers 노드에서 드롭다운 화살표를 클릭한 다음 사용자 지정을 선택합니다.

  4. 데이터 UI 사용자 지정 옵션 대화 상자에 있는 연결된 컨트롤 목록에서 ComplexDataGridView를 선택합니다.

  5. Customers 테이블에서 드롭다운 화살표를 클릭한 다음 컨트롤 목록에서 ComplexDataGridView를 선택합니다.

폼에 컨트롤 추가

데이터 소스 창에서 폼으로 항목을 끌어 와 데이터 바인딩된 컨트롤을 만들 수 있습니다.

폼에 데이터 바인딩된 컨트롤을 만들려면

  • 데이터 소스 창에서 폼으로 주 Customers 노드를 끌어 놓고 ComplexDataGridView 컨트롤을 사용하여 테이블의 데이터를 표시하는지 확인합니다.

응용 프로그램 실행

응용 프로그램을 실행하려면

  • F5 키를 눌러 응용 프로그램을 실행합니다.

다음 단계

응용 프로그램 요구 사항에 따라 데이터 바인딩을 지원하는 컨트롤을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 다음으로 수행할 일반적인 단계는 다음과 같습니다.

참고 항목

작업

방법: 데이터 소스 창에서 끌어 올 때 만들 컨트롤 설정

개념

Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩

Visual Studio에서 데이터에 컨트롤 바인딩

기타 리소스

Windows Forms 컨트롤

Visual Studio에서 데이터에 연결

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장