Este artigo passo a passo descreve como associar uma classe
ArrayList de objectos a um controlo
DataGrid . O exemplo inclui um formulário do Windows com um controlo
DataGrid para apresentar valores de propriedade do objecto e inclui quatro botões de comando para procurar as linhas do controlo
DataGrid .
Requisitos
Este artigo pressupõe que está familiarizado com os seguintes tópicos:
- Conceitos de programação Visual de C++ .NET ou Visual C++ 2005
A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
- Microsoft Visual C++ .NET ou Microsoft Visual C++ 2005
Estrutura da classe
Para vincular uma classe a um controlo, a classe tem de ter os acessores de propriedade. Qualquer propriedade ligar tem de ter uma função
getter e
setter função. Implementar propriedades utilizando a função
getter e a função
setter e notifique o compilador que estas são funções de propriedade que utilizar a palavra-chave
__property . A classe de exemplo que é utilizada 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 instâncias de classe a um ArrayList
Para criar instâncias e adicioná-los para a classe
ArrayList , siga estes passos:
- Declarar uma classe ArrayList da seguinte forma:
private: ArrayList *arrayList;
- No processador de eventos FormLoad , criar instâncias da classe e adicione as instâncias da classe ArrayList da seguinte forma:
//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));
Ligar a ArrayList DataGrid
Depois da classe
ArrayList estiver preenchida, defina a propriedade
origem de dados do controlo
DataGrid para a classe
ArrayList . As colunas o controlo
DataGrid são preenchidas baseadas nas propriedades para o qual existem os acessores de propriedade no âmbito.
// Bind the Array List to DataGrid.
dataGrid1->DataSource = arrayList;
Mover através de ArrayList
Pode utilizar a classe
CurrencyManager para percorrer a classe
ArrayList . Para efectuar este procedimento, declarar uma variável para a classe
CurrencyManager da seguinte forma:
private: CurrencyManager *currencyManager;
associar a classe
CurrencyManager com a função
BindingContext de controlo (neste caso, a
ArrayList ).
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
a classe
CurrencyManager tem uma propriedade de
posição que pode manipular para iterar através de membros da classe
ArrayList . Adicionar ou subtraindo do valor actual da função de
posição , pode mover através das linhas do controlo
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
- Inicie o Microsoft Visual Studio .NET 2003 ou Microsoft Visual Studio 2005.
- No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
- Clique em Projectos do Visual C++ em Project Types e clique em Aplicações de formulários do Windows (.NET) em modelos .
Nota No Visual Studio 2005, clique em Visual C++ em Project Types e, em seguida, clique em Aplicações de formulários do Windows em modelos . - Na caixa de texto nome , escreva Q816164 e, em seguida, clique em OK .
- No Solution Explorer, mude para vista de classe. Para tal, clique em Ver classe no menu Ver .
- Clique com o botão direito do rato Q816164 , aponte para Adicionar e, em seguida, clique em Adicionar classe .
- Na caixa de diálogo Adicionar classe , clique em Classes C++ genérico em modelos e, em seguida, clique em Abrir .
Nota No Visual Studio 2005, clique C++ Cass em modelos e, em seguida, clique em Adicionar . - No Assistente de classes C++ genérico, escreva Guitarra na caixa de texto nome de classe e, em seguida, clique em Concluir . A classe de Guitarra aparece da seguinte forma:
#pragma once
class Guitar
{
public:
Guitar(void);
~Guitar(void);
};
NOTA: no Visual Studio 2005, o código é. #pragma once
ref class Guitar
{
public:
Guitar(void);
};
Para tornar Guitarra classe um geridos para as extensões classe C++ para, adicionar a palavra-chave __gc antes a classe de Guitarra , da seguinte forma:
__gc class Guitar
{
public:
Guitar(void);
~Guitar(void);
};
- 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 do suporte de tempo de execução idioma comum no Visual C++ 2005, siga estes passos: - Clique em Project e, em seguida, clique em <ProjectName> propriedades .
Nota <ProjectName> é um marcador de posição para o nome do projecto. - Expanda Propriedades de configuração e, em seguida, clique em Geral .
- Clique para seleccionar Runtime do idioma comum suporte, sintaxe antigo (/ clr:oldSyntax) na definição de projecto Common Language Runtime suporte no painel da direita, clique em Aplicar e, em seguida, clique em OK .
Para obter mais informações sobre o common language runtime suporte a opção do compilador, visite o seguinte Web site da Microsoft: - Feche a janela de código Guitar.h e, em seguida, mude para o criador de formulários.
- Adicione o controlo DataGrid ao Form1. Tamanho o controlo DataGrid de acordo com quatro colunas e três linhas.
- Adicione quatro controlos botão ao Form1 e, em seguida, horizontalmente a dispor os botões.
- Altere a propriedade texto de Button1 para seguinte .
- Altere a propriedade texto de Button2 ao anterior .
- Altere a propriedade texto de Button3 a primeira .
- Altere a propriedade texto de Button4 para última .
- Abra o ficheiro de Form1.h e adicione o seguinte código no início:
- Adicione o seguinte código à classe Form1 :
private: System::Collections::ArrayList *arrayList;
private: System::Windows::Forms::CurrencyManager *currencyManager;
- Mude para o criador de formulários, clique com o botão direito do rato em form1 e, em seguida, clique em Propriedades .
- Clique no ícone de eventos e, em seguida, faça duplo clique o evento carregar para adicionar o evento Form1_Load o código.
- 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;
- Mude para o criador de formulários.
- Faça duplo clique em seguinte e adicione o seguinte código ao evento button1_Click :
//Move to the next position.
currencyManager->Position++;
- Faça duplo clique em anterior e adicione o seguinte código ao evento button2_Click :
//Move to the previous position.
currencyManager->Position--;
- Faça duplo clique primeiro e adicione o seguinte código ao evento button3_Click :
//Move to the first position.
currencyManager->Position =0;
- Faça duplo clique em último e adicione o seguinte código ao evento button4_Click :
//Move to the last position.
currencyManager->Position = currencyManager->Count -1;
- Criar e, em seguida, execute o projecto.
- Clique nos botões para percorrer as linhas do controlo DataGrid de comandos. Repare que pode editar os valores dos objectos, se for necessário.
Para obter mais informações sobre os consumidores de dados em formulários do Windows, visite o site Microsoft Developer Web seguinte:
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
| kbmt kbdatabinding kbcollections kbhowtomaster kbhowto KB816164 KbMtpt |
Tradução automáticaIMPORTANTE: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo:
816164
(http://support.microsoft.com/kb/816164/en-us/
)