Neste artigo vou mostrar como preencher um controle ListView com dados usando o Entity Framework, como exibir os dados selecionados em um linha do ListView e como exportar os dados para o formato texto e Excel. |
O controle ListView fornece um grande número de propriedades que permite configurar sua aparência e comportamento de uma forma muito flexível. Dentre as principais propriedades citamos :
View - permite alterar a forma nas quais os itens são exibidos
LargeImageList , SmallImageList e StateImageList - permite especificar o objeto ImageList que contém as imagens exibidas para os itens
Columns - permite o acesso a coleção que armazena os cabeçalhos das colunas
Items - premite acessar os métodos para manipular os itens no controle
Sorting - permite ordenar os itens alfabeticamente
LabelEdit - permite ao usuário editar o texto de um item
CheckedItems - permite saber quais itens estão marcados
AllowColumnReorder - permite reconfigurar a ordem das colunas em tempo de execução
FullRowSelect - permite a seleção de um item e subitem
Além desta propriedades o controle ListView também possui métodos e eventos que podemos usar em nossas aplicações aumentando assim as capacidades do controle ListView. Vejamos alguns deles :
BeginUpdate e EndUpdate : permite incluir itens em um ListView sem redesenhar o controle a cada item que é adicionado
GetItemAt - permite determinar o item cujos subitens esta sendo clicado
EnsureVisible - pode ser chamado para assegurar que o item especifico esta na área visível do controle.
BeferoLabelEdit e AfterLabelEdit - permite validar o texto que esta sendo editado antes e depois da alteração do texto
ColumnClick - permite ativar uma rotina quando a coluna é clicada.
ItemCheck - permite determinar quando a alteração no estado de um item ocorreu.
A Hierarquia de classe do componente pode ser visto a seguir:
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ListView
O ListView possui um menu de tarefas (ListView Tasks) onde podemos editar itens, colunas e grupos além de definir o modo de visão como: Tile, Small Icons, Large Icons, List e Details.
Quando você seleciona o primeiro item no menu de tarefa do ListView o editor de coleção de itens é exibido e ListViewItems pode ser incluídos ou removidos e suas propriedades podem ser definidas. Um objeto ListViewItem pode exibir uma imagem com um texto, neste caso um ImageList deve ser usado para associar a imagem com o objeto ListViewObject.
A classe ListViewItem representa itens em um controle ListView e a classe ListViwSubItem representa um sub-item relacionado ao ListViewItem. A classe ListViewItem expõe a propriedade coleção de SubItems que representa uma lisa de sub-itens relacionas a um item.
Além disso podemos incluir itens manualmente no controle incluindo ListViewItems na propriedade Items da coleção de itens do ListView.
Agora vamos colocar tudo isso em prática em um exemplo onde eu vou acessar a tabela Products do banco de dados Northwind no SQL Server usando o Entity Framework e exibir os dados no ListView.
A seguir vou mostrar como você pode selecionar uma linha do ListView e exibir os detalhes em outro formulário. Para concluir vou mostrar como exportar os dados do ListView para o formato texto e para o Excel.
Vamos lá...
Recursos Usados
Criando o projeto Windows Forms
Abra o VS 2015 Community e crie um novo projeto (File-> New Project) usando a linguagem VB .NET e o template Windows Forms Application.
Informe um nome a seu gosto. Eu vou usar o nome C_ListView1;
No formulário padrão Form1.cs inclua os controles :
1 ListView - Name=lvwDados , MultiSelect = False, GridLines=True, FullRowSelect=True, View=Details
Clique na propriedade Columns e na janela ColumnHeader e Collection Editor defina as colunas:
- Name - columnHeader1
- Text - Produto ID
- Width - 100
- Name - columnHeader2
- Text - Nome do Produto
- Width - 300
- Name - columnHeader1
- Text - Preço
- Width - 100
- Name - columnHeader1
- Text - Estoque
- Width - 100
3 Buttons - btnCarregar, btnExportarTexto, btnExportarExcel
Disponha os controles conforme o leiaute da figura abaixo:
Definindo a fonte de dados usando o Entity Framework
No menu Project clique em Add New Item e a seguir clique na guia Data e selecione o template ADO .NET Entity Data Model;
Informe o nome NorthwindModel e clique no botão Add;
Selecione o item EF Designer from database e clique em Next;
Selecione a conexão com o banco de dados Northwind e informe o nome NorthwindEntities e clique em Next;
Na próxima janela selecione a tabela Products e marque as opções conforme a figura abaixo e clique no botão Finish;
Será criado a classe Product mapeada para a tabela Products conforme mostra a figura a seguir:
Agora já podemos acessar os dados da tabela Products usando a classe Product mapeada pelo Entity Framework.
Carregando os dados da tabela Products no ListView
Vamos agora preencher o ListView com os dados da tabela Products usando o modelo de entidades criado pelo Entity Framework.
No evento Click do botão Carregar inclua o código abaixo:
private void btnCarregar_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
using (NorthwindEntities db = new NorthwindEntities())
{
List<Product> lista = db.Products.ToList();
foreach(Product p in lista)
{
ListViewItem item = new ListViewItem(p.ProductID.ToString());
item.SubItems.Add(p.ProductName);
item.SubItems.Add(p.UnitPrice.ToString());
item.SubItems.Add(p.UnitsInStock.ToString());
lvwDados.Items.Add(item);
}
}
Cursor.Current = Cursors.Default;
}
|
Criamos uma instância do modelo de entidades NorthwindEntities() e obtemos uma lista de produtos ( db.Products.ToList();) e percorremos a lista de produtos preenchendo o ListView.
Executando o projeto teremos o seguinte resultado:
Na segunda parte do artigo veremos como selecionar um item no ListView e exibir os detalhes em outro formulário.
"Porque a lei foi dada por Moisés; a
graça e a verdade vieram por Jesus Cristo."
Joao 1:17
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
Preenchendo um controle ListView com DataReader - Macoratti.net