Usar o Visual C# para associar um controle DataGrid a uma matriz de objetos ou estruturas
Este artigo fornece informações sobre como associar uma matriz de objetos a um controle DataGrid.
Versão original do produto: Visual C#
Número de KB original: 315786
Resumo
O exemplo neste artigo consiste em um formulário windows com um controle DataGrid para exibir valores de propriedade do objeto e quatro botões de comando para navegar pelas linhas do controle DataGrid.
Requisitos
Este artigo pressupõe que você esteja familiarizado com os seguintes tópicos:
- Conceitos de programação do Visual C#
- Visual C# .NET
Projetar a classe
Uma classe que deve estar associada a um controle deve ter acessadores de propriedade. Qualquer propriedade a ser vinculada deve ter o método de propriedade Set
e o método de propriedade Get
. A classe de exemplo usada neste artigo tem três membros. Somente um membro é descrito neste artigo. Um construtor parametrizado também foi fornecido. No entanto, não é um requisito.
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;
}
}
}
Adicionar instâncias de classe a uma matriz
Para criar instâncias e adicioná-las à matriz, siga estas etapas:
Declare uma matriz.
Crie instâncias da classe e adicione as instâncias à matriz.
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);
Associar a matriz ao controle DataGrid
Depois que a matriz for preenchida, defina a propriedade DataSource do controle DataGrid como a matriz. As colunas no controle DataGrid são preenchidas com base nas propriedades para as quais existem os acessadores de propriedade no escopo.
dataGrid1.DataSource=arr;
Fornecer um meio de navegar pela matriz
Você pode usar CurrencyManager
para navegar pela matriz. Para fazer isso, associe-se CurrencyManager
ao BindingContext
controle, nesse caso, à matriz.
private CurrencyManager currencyManager=null;
currencyManager = (CurrencyManager)dataGrid1.BindingContext[arr];
A CurrencyManager
classe tem uma Position
propriedade que você pode manipular para iterar sobre os membros da matriz. Ao adicionar ou subtrair o valor atual de Position
, você pode navegar pelas linhas do DataGrid
controle.
//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;
Exemplo passo a passo
No Visual C# .NET, crie um novo projeto do Aplicativo Windows. O Form1 é criado por padrão.
Adicione uma classe ao projeto.
Substitua o código no Class1.cs pelo código a seguir.
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; } } }
Feche a janela de código Class1.cs e, em seguida, alterne para o Formulário Designer.
Adicione um controle DataGrid ao Form1. Dimensione o controle DataGrid para acomodar quatro colunas e três linhas.
Adicione quatro controles button ao Form1 e, em seguida, organize os botões horizontalmente.
Altere a propriedade Texto de Button1 para Avançar.
Altere a propriedade Texto de Button2 para Anterior.
Altere a propriedade Text de Button3 para First.
Altere a propriedade Texto de Button4 para Last.
Adicione o seguinte código à classe
Form1
.private guitar[] arr=new guitar[3]; private CurrencyManager currencyManager=null;
Alterne para o Formulário Designer, clique com o botão direito do mouse no formulário e clique em Propriedades.
Clique no ícone Eventos e clique duas vezes no evento de carga para adicionar o
Form1_Load
evento ao código.Adicione o código a seguir ao
Form1_Load
evento.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;
Alterne para exibir o Formulário Designer.
Clique duas vezes em Avançar e adicione o código a seguir ao
button1_Click
evento.currencyManager.Position++;
Clique duas vezes em Anterior e adicione o código a seguir ao
button2_Click
evento.currencyManager.Position--;
Clique duas vezes em Primeiro e adicione o código a seguir ao
button3_Click
evento.currencyManager.Position = 0;
Clique duas vezes em Último e adicione o código a seguir ao
button4_Click
evento.currencyManager.Position = arr.Length - 1;
Crie e execute o projeto.
Clique nos botões de comando para se mover entre as linhas do controle DataGrid.
Observação
Você pode editar os valores dos objetos, se desejar.
Usar uma estrutura em vez de uma classe
As regras para associar uma estrutura são as mesmas que as regras para associação de um objeto. A propriedade que é acessador de membros é necessária. Uma estrutura criada para essa finalidade se assemelha a uma classe.
Para associar a uma matriz de estruturas, siga estas etapas.
Alterar a definição do módulo de classe Class1.cs no exemplo de
public class guitar
para o exemplo a seguir:
public struct guitar
Comente o construtor padrão da seguinte maneira.
//public guitar() //{ //}
Crie e execute o programa de exemplo novamente e verifique se ele funciona com uma matriz de estruturas.
Referências
Para obter mais informações, confira o tópico Consumidores de Dados sobre Windows Forms no Visual Studio .NET Online Help.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários