Visual C++ .NET 또는 Visual C++ 2005를 사용하여 개체 또는 구조체를 ArrayList DataGrid 컨트롤을 바인딩하는 방법을

기술 자료 번역 기술 자료 번역
기술 자료: 816164 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 ArrayList 클래스 개체의 DataGrid 컨트롤에 바인딩하는 방법을 설명합니다. 이 예제에서는 개체의 속성 값을 표시하기 위해 DataGrid 컨트롤 가진 Windows Form으로 포함되며 DataGrid 컨트롤의 행을 찾아보려면 네 개의 명령 단추가 포함되어 있습니다.

요구 사항

이 문서에서는 사용자가 다음 항목을 잘 알고 있다고 가정합니다.
  • Visual C++ .NET 또는 Visual C++ 2005 프로그래밍 개념
다음은 권장되는 하드웨어, 소프트웨어, 네트워크 인프라 및 필요한 서비스 팩의 목록입니다.
  • Microsoft Visual C++ .NET 또는 Microsoft Visual C++ 2005

클래스 디자인

클래스 컨트롤에 바인딩할 수 있는 클래스 속성 접근자가 있어야 합니다. 바인딩할 속성 getter 함수 및 setter 함수 있어야 합니다. getter 함수 및 setter 함수를 사용하여 속성 구현 및 이러한 __property 키워드를 사용하여 속성 함수가 있습니다 컴파일러에 알립니다. 이 문서에서 사용되는 샘플 클래스 멤버가 3개 있지만:
__gc class Guitar
{
private:
        String *make;
        String *model;
        short year;
public:
    Guitar(void);
    ~Guitar(void);
        
        Guitar(String *strMake, String *strModel, short shYear)
        {
            make = strMake;
            model = strModel;
            year = shYear;
        }

        __property String* get_Make() 
        {
            return make; 
        }
        __property void set_Make(String* val)
        {
            make = (val); 
        }
        __property String* get_Model()
        { 
            return model; 
        }
        __property void set_Model(String* val)
        {
            model = (val); 
        }

        __property short get_Year()
        { 
            return year; 
        }
        __property void set_Year(short shValue)
        {
            year = shValue; 
        }
};

클래스 인스턴스 ArrayList에 추가

이러한 단계를 수행하여 인스턴스를 만들고 ArrayList 클래스에 추가합니다.
  1. ArrayList 클래스를 다음과 같이 선언할:
    private: ArrayList *arrayList;
  2. FormLoad 이벤트 처리기에서 해당 클래스의 인스턴스를 만들고 다음 ArrayList 클래스 인스턴스는 다음과 같은 추가: ArrayList
    //Create an ArrayList.
    arrayList = new ArrayList();
    
    //Populate the array list.
    arrayList->Add(new guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new guitar(S"Guild",S"Bluesbird",1958));
    

DataGrid 수 있는 ArrayList 바인딩

ArrayList 클래스 채운 ArrayList 클래스 DataGrid 컨트롤의 데이터 소스 속성을 설정하십시오. DataGrid 컨트롤에 있는 열의 범위 내에 속성 접근자를 존재하는 속성에 따라 채워집니다.
// Bind the Array List to DataGrid.
      dataGrid1->DataSource = arrayList;

ArrayList 통해 이동

CurrencyManager 클래스 ArrayList 클래스를 통해 이동할 수 있습니다. 이렇게 하려면 CurrencyManager 클래스 변수를 다음과 같이 선언할:
private: CurrencyManager *currencyManager;
컨트롤 (이 경우 ArrayList) BindingContext 함수로 CurrencyManager 클래스 연결.
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
ArrayList 클래스의 멤버를 통해 반복하는 데 조작할 수 있는 위치 속성을 CurrencyManager 클래스가 있습니다. 추가 또는 위치 함수, 의 현재 값을 빼서 통해 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 = arrayList.Count - 1;
				

단계별 예제

  1. Microsoft Visual Studio .NET 2003 또는 Microsoft Visual Studio 2005 시작하십시오.
  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트 를 클릭하십시오.
  3. 클릭하여 프로젝트 형식 에서 Visual C++ 프로젝트템플릿 에서 Windows Forms 응용 프로그램 (.NET)을 클릭합니다.

    참고 Visual Studio 2005에서 프로젝트 형식Visual C++ 클릭한 다음 템플릿 에서 Windows Forms 응용 프로그램 을 누릅니다.
  4. 이름 텍스트 상자에 Q816164 를 입력한 다음 확인 을 누릅니다.
  5. 솔루션 탐색기에서 클래스 뷰로 전환하십시오. 이렇게 하려면 보기 메뉴에서 클래스 뷰 를 클릭하십시오.
  6. Q816164 마우스 오른쪽 단추로 클릭하고 추가 를 가리킨 다음 클래스 추가 클릭하십시오.
  7. 클래스 추가 대화 상자의 템플릿일반 C++ 클래스 클릭한 다음 열기 를 클릭하십시오.

    참고 Visual Studio 2005에서 C++ Cass템플릿 클릭한 다음 추가 클릭하십시오.
  8. 일반 C++ 클래스 마법사 기타클래스 이름 텍스트 상자에 입력한 다음 마침 을 클릭하십시오. 기타 클래스는 다음과 같이 나타납니다:
    #pragma once
    
    class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
    참고 Visual Studio 2005 위치 해당 코드는 다음과 같습니다.
    #pragma once
    
    ref class Guitar
    {
    public:
    	Guitar(void);
    };
    
    Managed Extensions C++ 클래스에 대한 클래스 기타 하려면 기타 클래스 앞에 __gc 키워드가 다음과 같은 추가:
    __gc class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
  9. Replace the existing code in the Guitar.h file with the following code:
    #pragma once
    
    using namespace System;
    __gc class Guitar
    {
    private:
            String *make;
            String *model;
            short year;
    public:
        Guitar(void);
        ~Guitar(void);
            
            Guitar(String *strMake, String *strModel, short shYear)
            {
                make = strMake;
                model = strModel;
                year = shYear;
            }
    
            __property String* get_Make() 
            {
                return make; 
            }
            __property void set_Make(String* val)
            {
                make = (val); 
            }
            __property String* get_Model()
            { 
                return model; 
            }
            __property void set_Model(String* val)
            {
                model = (val); 
            }
    
            __property short get_Year()
            { 
                return year; 
            }
            __property void set_Year(short shValue)
            {
                year = shValue; 
            }
    };
    
    
    Note You must add the common language runtime support compiler option (/clr:oldSyntax) in Visual C++ 2005 to successfully compile the previous code sample. Visual C++ 2005에서는 공용 언어 런타임 지원 컴파일러 옵션을 추가하려면 다음과 같이 하십시오.
    1. 프로젝트 를 클릭한 다음 <ProjectName> 속성을.

      참고<ProjectName> 프로젝트 이름에 대한 자리 표시자입니다.
    2. 구성 속성 을 확장한 다음 일반 을 클릭하십시오.
    3. 확인란을 선택하고 공용 언어 런타임 지원, 이전 구문 (/clr:oldSyntax)공용 언어 런타임 지원 프로젝트 설정을 오른쪽 창에 적용 을 누른 다음 확인 을 누릅니다.
    공용 언어 런타임에 대한 자세한 내용은 컴파일러 옵션을 지원하는 보려면 다음 Microsoft 웹 사이트를 방문하십시오.
    /clr (공용 언어 런타임 컴파일)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  10. Guitar.h 코드 창을 닫고 폼 디자이너로 전환하십시오.
  11. DataGrid 컨트롤을 Form1에 추가하십시오. 세 개의 행과 네 개의 열을 맞게 DataGrid 컨트롤 크기.
  12. Form1을 네 개의 단추 컨트롤을 추가하고 단추를 가로로 정렬하십시오.
  13. Button1Text 속성을 다음 으로 변경하십시오.
  14. 이전 위해 Button2Text 속성을 변경하십시오.
  15. Text 속성을 Button3 로 변경하십시오.
  16. 마지막으로 위해 Button4를 Text 속성을 변경하십시오.
  17. Form1.h 파일을 열고 맨 앞에 다음 코드를 추가하여:
    #include "Guitar.h"
  18. Form1 클래스에 다음 코드를 추가하여:
    private: System::Collections::ArrayList *arrayList;	
    private: System::Windows::Forms::CurrencyManager *currencyManager;	
    
  19. 폼 디자이너로 전환합니다 form1, 마우스 오른쪽 단추로 클릭한 다음 속성 을 클릭하십시오.
  20. 이벤트 아이콘을 클릭한 다음 코드에 Form1_Load 이벤트를 추가하려면 Load 이벤트를 두 번 클릭하십시오.
  21. 다음 코드를 붙여 Form1_Load 이벤트: 배열
    //Create an arraylist.
    arrayList = new ArrayList();
    
    arrayList->Add(new Guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new Guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new Guitar(S"Guild",S"Bluesbird",1958));
    
                
     currencyManager = dynamic_cast <CurrencyManager*>
                     (dataGrid1->BindingContext->Item[arrayList]);
    // Bind the Array List to DataGrid.
    dataGrid1->DataSource = arrayList;
    
  22. 폼 디자이너로 전환하십시오.
  23. 다음 을 두 번 클릭한 다음 button1_Click 이벤트에 다음 코드를 추가합니다: 다음 위치로
    //Move to the next position.
    currencyManager->Position++;
    
  24. 이전, 두 번 클릭한 다음 button2_Click 이벤트에 다음 코드를 추가합니다: 이전 위치로
    //Move to the previous position.
    currencyManager->Position--;
    
  25. 첫째, 두 번 클릭한 다음 button3_Click 이벤트에 다음 코드를 추가합니다: 첫 번째 위치로
    //Move to the first position.
    currencyManager->Position =0;
    
  26. 마지막으로, 두 번 클릭한 다음 button4_Click 이벤트에 다음 코드를 추가합니다: 마지막 위치로
    //Move to the last position.
    currencyManager->Position = currencyManager->Count -1;
    
  27. 구축 및 다음 프로젝트를 실행하십시오.
  28. DataGrid 컨트롤의 행 사이를 이동할 수 있는 명령 단추를 클릭하십시오. 필요한 경우, 개체 값을 편집할 수 있습니다.

참조

자세한 내용은 데이터 소비자에 대한 Windows 폼에 다음 Microsoft 개발자 웹 사이트를 방문하십시오.
http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx

속성

기술 자료: 816164 - 마지막 검토: 2007년 5월 13일 일요일 - 수정: 2.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
키워드:?
kbmt kbdatabinding kbcollections kbhowtomaster kbhowto KB816164 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com