Visual C#을 사용하여 DataGrid 컨트롤을 개체 또는 구조체의 배열에 바인딩

이 문서에서는 개체 배열을 DataGrid 컨트롤에 바인딩하는 방법에 대한 정보를 제공합니다.

원래 제품 버전: Visual C#
원본 KB 번호: 315786

요약

이 문서의 예제는 개체 속성 값을 표시하는 DataGrid 컨트롤과 DataGrid 컨트롤의 행을 찾아보는 네 개의 명령 단추가 있는 Windows 양식으로 구성됩니다.

요구 사항

이 문서에서는 다음 topics 잘 알고 있다고 가정합니다.

  • Visual C# 프로그래밍 개념
  • Visual C# .NET

클래스 디자인

컨트롤에 바인딩할 클래스에는 속성 접근자가 있어야 합니다. 바인딩할 모든 속성에는 속성 메서드와 속성 SetGet 메서드가 있어야 합니다. 이 문서에서 사용되는 샘플 클래스에는 세 개의 멤버가 있습니다. 이 문서에서는 멤버 하나만 설명합니다. 매개 변수가 있는 생성자도 제공되었습니다. 그러나 요구 사항은 아닙니다.

public class guitar
{
    private string make;
    private string model;
    private short year;

    public guitar()
    {
    }

    public guitar(string make, string model, short year)
    {
        Make=make;
        Model=model;
        Year=year;
    }

    public string Make
    {
        get
        {
            return make;
        }
        set
        {
            make = value;
        }
    }
}

배열에 클래스 인스턴스 추가

인스턴스를 만들고 배열에 추가하려면 다음 단계를 수행합니다.

  1. 배열을 선언합니다.

  2. 클래스의 인스턴스를 만든 다음, 배열에 인스턴스를 추가합니다.

    private guitar[] arr=new guitar[3];
    arr[0] = new guitar("Gibson", "Les Paul", 1958);
    arr[1] = new guitar("Fender", "Jazz Bass", 1964);
    arr[2] = new guitar("Guild", "Bluesbird", 1971);
    

DataGrid 컨트롤에 배열 바인딩

배열이 채워지면 DataGrid 컨트롤의 DataSource 속성을 배열로 설정합니다. DataGrid 컨트롤의 열은 scope 속성 접근자가 있는 속성에 따라 채워집니다.

dataGrid1.DataSource=arr;

배열을 검색하는 방법을 제공합니다.

를 사용하여 CurrencyManager 배열을 탐색할 수 있습니다. 이렇게 하려면 컨트롤의 와 BindingContext 연결 CurrencyManager 합니다(이 경우 배열).

private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];

클래스에는 CurrencyManagerPosition 배열의 멤버를 반복하기 위해 조작할 수 있는 속성이 있습니다. 의 현재 값을 Position에 추가하거나 빼면 컨트롤의 DataGrid 행을 찾아볼 수 있습니다.

//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arr.Length - 1;

단계별 예제

  1. Visual C# .NET에서 새 Windows 애플리케이션 프로젝트를 만듭니다. Form1은 기본적으로 만들어집니다.

  2. 프로젝트에 클래스를 추가합니다.

  3. Class1.cs 코드를 다음 코드로 바꿉다.

    public class guitar
    {
        private string make;
        private string model;
        private short year;
    
        public guitar()
        {
        }
    
        public guitar(string Make, string Model, short Year)
        {
            make=Make;
            model=Model;
            year=Year;
        }
    
        public string Make
        {
            get
            {
                return make;
            }
            set
            {
                make = value;
            }
        }
    
        public string Model
        {
            get
            {
                return model;
            }
            set
            {
                model = value;
            }
        }
    
        public short Year
        {
            get
            {
                return year;
            }
            set
            {
                year = value;
            }
        }
    }
    
  4. Class1.cs 코드 창을 닫은 다음 양식 Designer 전환합니다.

  5. Form1에 DataGrid 컨트롤을 추가합니다. 4개의 열과 3개의 행을 수용할 수 있도록 DataGrid 컨트롤의 크기를 조정합니다.

  6. Form1에 단추 컨트롤 4개를 추가한 다음 단추를 가로로 정렬합니다.

  7. Button1의 Text 속성을 다음으로 변경합니다.

  8. Button2의 Text 속성을 이전으로 변경합니다.

  9. Button3의 Text 속성을 First로 변경합니다.

  10. Button4의 Text 속성을 마지막으로 변경합니다.

  11. 다음 코드를 Form1 클래스에 추가합니다.

    private guitar[] arr=new guitar[3];
    private CurrencyManager currencyManager=null;
    
  12. 폼 Designer 전환하고 폼을 마우스 오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

  13. 이벤트 아이콘을 클릭한 다음 로드 이벤트를 두 번 클릭하여 코드를 추가 Form1_Load 합니다.

  14. 이벤트에 다음 코드를 추가합니다 Form1_Load .

    arr[0] = new guitar("Gibson", "Les Paul", 1958);
    arr[1] = new guitar("Fender", "Jazz Bass", 1964);
    arr[2] = new guitar("Guild", "Bluesbird", 1971);
    currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
    dataGrid1.DataSource=arr;
    
  15. 폼 Designer 보려면 전환합니다.

  16. 다음을 두 번 클릭한 다음 이벤트에 다음 코드를 추가합니다button1_Click.

    currencyManager.Position++;
    
  17. 이전을 두 번 클릭한 다음 이벤트에 다음 코드를 추가합니다button2_Click.

    currencyManager.Position--;
    
  18. 첫 번째를 두 번 클릭한 다음 이벤트에 다음 코드를 추가합니다button3_Click.

    currencyManager.Position = 0;
    
  19. 마지막을 두 번 클릭한 다음 이벤트에 다음 코드를 추가합니다button4_Click.

    currencyManager.Position = arr.Length - 1;
    
  20. 프로젝트를 빌드하고 실행합니다.

  21. 명령 단추를 클릭하여 DataGrid 컨트롤의 행 간에 이동합니다.

    참고

    원하는 경우 개체의 값을 편집할 수 있습니다.

클래스 대신 구조체 사용

구조체 바인딩 규칙은 개체 바인딩 규칙과 동일합니다. 멤버 접근자 속성이 필요합니다. 이 용도로 만들어진 구조체는 클래스와 유사합니다.

구조체 배열에 바인딩하려면 다음 단계를 수행합니다.

  1. 예제에서 Class1.cs 클래스 모듈의 정의를

    public class guitar
    

    다음 예제로 변경합니다.

    public struct guitar
    
  2. 다음과 같이 기본 생성자를 주석으로 처리합니다.

    //public guitar()
    //{
    //}
    
  3. 예제 프로그램을 다시 빌드하고 실행하고 구조체 배열로 작동하는지 확인합니다.

참조

자세한 내용은 Visual Studio .NET Online 도움말의 Windows Forms 데이터 소비자 항목을 참조하세요.