다음을 통해 공유


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

 

게시 날짜: 2016년 4월

Windows 응용 프로그램에서 폼에 데이터를 표시할 때는 도구 상자에서 기존 컨트롤을 선택할 수도 있고, 표준 컨트롤에서는 제공되지 않는 기능이 응용 프로그램에 필요한 경우에는 사용자 지정 컨트롤을 작성할 수도 있습니다. 이 연습에서는 DefaultBindingPropertyAttribute를 구현하는 컨트롤을 만드는 방법을 보여줍니다. DefaultBindingPropertyAttribute를 구현하는 컨트롤은 데이터에 바인딩할 수 있는 속성 한 개를 포함할 수 있습니다. 이러한 컨트롤은 TextBox 또는 CheckBox와 비슷합니다.

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

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

데이터 바인딩 특성 사용법
단일 데이터 열이나 속성을 표시하는 TextBox 등의 단순 컨트롤에 대해 DefaultBindingPropertyAttribute를 구현합니다. 이 연습 페이지에서 해당 프로세스에 대해 설명합니다.
데이터 목록 또는 테이블을 표시하는 DataGridView 등의 컨트롤에 대해 ComplexBindingPropertiesAttribute를 구현합니다. 자세한 내용은 연습: 복합 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기을 참조하십시오.
데이터 목록 또는 테이블을 표시하는 동시에 단일 열이나 속성도 제공해야 하는 ComboBox 등의 컨트롤에 대해 LookupBindingPropertiesAttribute를 구현합니다. 자세한 내용은 연습: 조회 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기을 참조하십시오.

이 연습에서는 테이블 내 단일 열의 데이터를 표시하는 단순 컨트롤을 만듭니다. 이 예에서는 Northwind 샘플 데이터베이스 Customers 테이블의 Phone 열을 사용합니다. 단순 사용자 컨트롤은 MaskedTextBox를 사용하고 전화 번호에 마스크를 설정하여 고객 전화 번호를 표준 전화 번호 형식으로 표시합니다.

이 연습에서는 다음 작업을 수행하는 방법을 배웁니다.

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

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

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

  • DefaultBindingProperty 특성을 구현합니다.

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

  • 새 컨트롤을 사용하도록 데이터 소스 창의 Phone 열을 설정합니다.

  • 새 컨트롤에 데이터를 표시할 폼을 만듭니다.

사전 요구 사항

이 연습을 완료하려면 다음 사항이 필요합니다.

Windows 응용 프로그램 만들기

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

새 Windows 프로젝트를 만들려면

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

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

  3. Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 클라이언트 응용 프로그램을 참조하십시오.

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

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

이 연습에서는 사용자 컨트롤에서 데이터 바인딩 가능한 단순 컨트롤을 만들 것이므로 사용자 컨트롤 항목을 SimpleControlWalkthrough 프로젝트에 추가합니다.

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

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

  2. 이름 영역에 PhoneNumberBox를 입력하고 추가를 클릭합니다.

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

PhoneNumberBox 컨트롤 디자인

이 연습에서는 기존 MaskedTextBox를 확장하여 PhoneNumberBox 컨트롤을 만듭니다.

PhoneNumberBox 컨트롤을 디자인하려면

  1. 도구 상자에서 사용자 컨트롤의 디자인 화면으로 MaskedTextBox를 끌어 옵니다.

  2. 방금 끌어 온 MaskedTextBox에서 스마트 태그를 선택하고 마스크 설정을 선택합니다.

  3. 입력 마스크 대화 상자에서 전화 번호를 선택하고 확인을 클릭하여 마스크를 설정합니다.

필수 데이터 바인딩 특성 추가

데이터 바인딩을 지원하는 단순 컨트롤에 대해 DefaultBindingPropertyAttribute를 구현합니다.

DefaultBindingProperty 특성을 구현하려면

  1. PhoneNumberBox 컨트롤을 코드 보기로 전환합니다. 이렇게 하려면 보기 메뉴에서 코드를 선택합니다.

  2. PhoneNumberBox의 코드를 다음 코드로 바꿉니다.

    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.DefaultBindingProperty("PhoneNumber")]
        public partial class PhoneNumberBox : UserControl
        {
            public string PhoneNumber
            {
                get{ return maskedTextBox1.Text; }
                set{ maskedTextBox1.Text = value; }
            }
    
            public PhoneNumberBox()
            {
                InitializeComponent();
            }
        }
    }
    
    <System.ComponentModel.DefaultBindingProperty("PhoneNumber")>
    Public Class PhoneNumberBox
    
        Public Property PhoneNumber() As String
            Get
                Return MaskedTextBox1.Text
            End Get
            Set(ByVal value As String)
                MaskedTextBox1.Text = value
            End Set
        End Property
    End Class
    
  3. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

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

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

데이터 소스를 만들려면

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

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

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

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

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

      Or

    • 새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다.

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

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

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

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

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

PhoneNumberBox 컨트롤을 사용하도록 Phone 열 설정

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

PhoneNumberBox 컨트롤에 바인딩되도록 Phone 열을 설정하려면

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

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

  3. Customers 노드에서 드롭다운 화살표를 클릭하고 컨트롤 목록에서 Details를 선택합니다.

  4. Phone 열에서 드롭다운 화살표를 클릭하고 Customize를 선택합니다.

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

  6. Phone 열에서 드롭다운 화살표를 클릭하고 PhoneNumberBox를 선택합니다.

폼에 컨트롤 추가

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

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

  • 데이터 소스 창의 주 Customers 노드를 폼으로 끌어 와서 Phone 열의 데이터를 표시하는 데 PhoneNumberBox 컨트롤이 사용되는지 확인합니다.

    설명 레이블이 있는 데이터 바인딩된 컨트롤이 레코드 탐색을 위한 도구 모음인 BindingNavigator와 함께 폼에 나타납니다. NorthwindDataSet, CustomersTableAdapter, BindingSourceBindingNavigator가 구성 요소 트레이에 나타납니다.

응용 프로그램 실행

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

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

다음 단계

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

참고 항목

데이터 소스 창에서 끌어올 때 만들 컨트롤 설정
Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩
Visual Studio의 데이터 응용 프로그램 개요
Visual Studio에서 데이터에 연결
데이터를 받기 위해 응용 프로그램 준비
데이터를 응용 프로그램으로 페치
Visual Studio에서 데이터에 컨트롤 바인딩
응용 프로그램에서 데이터 편집
데이터 유효성 검사
데이터 저장