Como vincular um controle DataGrid para uma ArrayList de objetos ou estruturas usando o Visual C++ .NET ou Visual C++ 2005

Traduções deste artigo Traduções deste artigo
ID do artigo: 816164 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo passo a passo descreve como vincular uma classe ArrayList de objetos a um controle DataGrid . O exemplo inclui um formulário do Windows com um controle DataGrid para exibir valores de propriedade do objeto e inclui quatro botões de comando para procurar as linhas do controle DataGrid .

Requisitos

Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
  • Conceitos de programação C++ .NET ou Visual C++ 2005 Visual
A lista a seguir descreve o hardware recomendado, software, infra-estrutura de rede e service packs que você precisa:
  • Microsoft Visual C++ .NET ou Microsoft Visual C++ 2005

Design da classe

Para vincular uma classe a um controle, a classe deve ter acessadores de propriedade. Qualquer propriedade que você ligar deve ter uma função getter e uma função setter . Implementar propriedades usando a função getter e a função setter e notificar o compilador que essas são funções de propriedade que usam a palavra-chave __property . A classe de exemplo que é usada neste artigo tem três membros:
__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; 
        }
};

Adicionar classe instâncias a um ArrayList

Para criar instâncias e adicioná-los para a classe ArrayList , execute essas etapas:
  1. Declara uma classe ArrayList da seguinte maneira:
    private: ArrayList *arrayList;
  2. No manipulador de eventos FormLoad , criar instâncias da classe e adicionar as instâncias para a classe ArrayList da seguinte maneira:
    //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));
    

Vincular o ArrayList a DataGrid

Após a classe ArrayList é preenchida, defina a propriedade DataSource do controle DataGrid para a classe ArrayList . As colunas no controle DataGrid são preenchidas com base nas propriedades para o qual existem acessadores de propriedade no escopo.
// Bind the Array List to DataGrid.
      dataGrid1->DataSource = arrayList;

Mover até o ArrayList

Você pode usar a classe CurrencyManager para percorrer a classe ArrayList . Para fazer isso, declare uma variável para a classe CurrencyManager da seguinte maneira:
private: CurrencyManager *currencyManager;
associar a classe CurrencyManager com a função BindingContext do controle (no caso, o ArrayList ).
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
a classe CurrencyManager tem uma propriedade posição que você pode manipular para iterar sobre os membros da classe ArrayList . Adicionando a ou subtração do, o valor atual da função posição , você pode mover através das linhas do controle 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;
				

Exemplo passo a passo

  1. Inicie o Microsoft Visual Studio .NET 2003 ou Microsoft Visual Studio 2005.
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Clique em Projetos do Visual c++ em Project Types e clique em Windows Forms Application (. NET) em modelos .

    Observação No Visual Studio 2005, clique em Visual C++ em Tipos de projeto e, em seguida, clique em Windows Forms Application em modelos .
  4. Na caixa de texto nome , digite Q816164 e, em seguida, clique em OK .
  5. No Solution Explorer, alterne para Class View. Para fazer isso, clique em Class View no menu Exibir .
  6. Clique com o botão direito do mouse Q816164 , aponte para Add e, em seguida, clique em Add Class .
  7. Na caixa de diálogo Add Class , clique em Classe do C++ genérico em modelos e, em seguida, clique em Abrir .

    Observação No Visual Studio 2005, clique em C++ Cass em modelos e em seguida, clique em Adicionar .
  8. No Assistente de classe C++ genérico, digite Guitarra na caixa de texto nome da classe e em seguida, clique em Concluir . A classe de Guitarra aparece da seguinte maneira:
    #pragma once
    
    class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
    Observação Visual Studio 2005, o código é da seguinte maneira.
    #pragma once
    
    ref class Guitar
    {
    public:
    	Guitar(void);
    };
    
    Para fazer Guitarra classe um Managed Extensions para C++ classe, adicione a palavra-chave __gc antes da aula Guitarra , da seguinte maneira:
    __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. Para adicionar a opção de compilador de suporte de tempo de execução idioma comum no Visual C++ 2005, siga estas etapas:
    1. Clique em Project e clique em <ProjectName> propriedades .

      Observação <ProjectName> é um espaço reservado para o nome do projeto.
    2. Expanda Configuration Properties e, em seguida, clique em Geral .
    3. Clique para selecionar Common Language Runtime suporte, sintaxe antiga (/ CLR: oldSyntax) no projeto oferece suporte a Common Language Runtime configuração no painel à direita, clique em Aplicar e em seguida, clique em OK .
    Para obter mais informações sobre o common language runtime oferece suporte à opção do compilador, visite o seguinte site da Microsoft:
    / clr (Common Language Runtime Compilation)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  10. Feche a janela de código Guitar.h e, em seguida, alterne para o Form Designer.
  11. Adicione um controle DataGrid ao Form1. Tamanho do controle DataGrid para acomodar quatro colunas e três linhas.
  12. Adicione quatro controles de botão a Form1 e organizar os botões horizontalmente.
  13. Altere a propriedade texto de Button1 para Avançar .
  14. Altere a propriedade texto de Button2 ao anterior .
  15. Altere a propriedade texto de Button3 para primeiro .
  16. Altere a propriedade texto de Button4 a última .
  17. Abra o arquivo Form1.h e adicione o seguinte código no início:
    #include "Guitar.h"
  18. Adicione o seguinte código à classe Form1 :
    private: System::Collections::ArrayList *arrayList;	
    private: System::Windows::Forms::CurrencyManager *currencyManager;	
    
  19. Alterne para o Form Designer, clique com o botão direito do mouse em form1 e, em seguida, clique em Propriedades .
  20. Clique no ícone Events e clique duas vezes o evento Load para adicionar o evento Form1_Load ao seu código.
  21. Cole o seguinte código no evento 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. Alterne para o criador de formulários.
  23. Clique duas vezes em Avançar e adicione o seguinte código ao evento Button1_Click :
    //Move to the next position.
    currencyManager->Position++;
    
  24. Clique duas vezes anterior e, em seguida, adicione o código a seguir para o evento button2_Click :
    //Move to the previous position.
    currencyManager->Position--;
    
  25. Clique duas vezes primeiro e, em seguida, adicione o código a seguir para o evento button3_Click :
    //Move to the first position.
    currencyManager->Position =0;
    
  26. Clique duas vezes última e adicione o seguinte código ao evento button4_Click :
    //Move to the last position.
    currencyManager->Position = currencyManager->Count -1;
    
  27. Criar e executar o projeto.
  28. Clique nos botões de comando para percorrer as linhas do controle DataGrid . Observe que você pode editar os valores de objetos, se você precisar.

Referências

Para obter mais informações sobre os consumidores de dados em formulários do Windows, visite o seguinte site da Microsoft Developer:
http://msdn2.microsoft.com/en-us/library/aa983578(VS.71).aspx

Propriedades

ID do artigo: 816164 - Última revisão: domingo, 13 de maio de 2007 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
Palavras-chave: 
kbmt kbdatabinding kbcollections kbhowtomaster kbhowto KB816164 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 816164

Submeter comentários

 

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