Quick Tips: Agrupamento em um ListView

Nesta quick tip veremos como criar grupos em um listView.

Quick Tip: Agrupamento em um ListView

 

Nesta quick tip veremos como criar grupos em um listView.

 

Insira um botão e um ListView no formulário e altere a propriedade View para Details.

 

Declare uma classe Cliente que será quem exibiremos na listView.

 

public class Cliente

{

public int Codigo { get; set; }

public String Nome { get; set; }

public String Bairro { get; set; }

}

 

Abaixo está o código para carregar a lista de clientes dinamicamente na ListView.

private void BtnLoad_Click(object sender, EventArgs e)

{

listView1.Groups.Add("Realengo","Realengo");

 

//Cria lista de clientes

List<Cliente> lista = new List<Cliente>();

//Cria, alimenta e adiciona clientes à lista

Cliente c = new Cliente();

c.Codigo = 1;

c.Nome = "Ricardo";

c.Bairro = "Recreio";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 2;

  c.Nome = "Julia";

c.Bairro = "Barra";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 3;

c.Nome = "Givonilda";

c.Bairro = "Recreio";

lista.Add(c);

 

c = new Cliente();

c.Codigo = 4;

c.Nome = "Maria";

c.Bairro = "Irajá";

lista.Add(c);

//Recupera lista de propriedades da classe Cliente

PropertyInfo[] props = typeof(Cliente).GetProperties();

//Percorre lista de propriedades da classe Cliente

foreach (PropertyInfo p in props)

{

//Cria uma nova coluna

ColumnHeader col = new ColumnHeader();

//Adiciona ao listView

listView1.Columns.Add(col);

//Altera o text atribuindo o nome da propriedade de Cliente

col.Text = p.Name;

//Ajusta o tamanho da coluna

col.Width = 100;

}

 

//Percorre lista de clientes

foreach (Cliente cliente in lista)

{

//Verifica se existe um grupo para o bairro do cliente atual do forEach

//Se não existir cria um com o nome do bairro

if (listView1.Groups[cliente.Bairro] == null)

listView1.Groups.Add(cliente.Bairro, cliente.Bairro);

 

//Adiciona um item em branco no listView

ListViewItem item = listView1.Items.Add(cliente.Codigo.ToString());

item.SubItems.Add(cliente.Nome);

item.SubItems.Add(cliente.Bairro);

//Aloca o item no seu respecitvo grupo

item.Group = listView1.Groups[cliente.Bairro];

}

}

 

 

Resultado da execução da rotina.




É isso aí pessoal, vou ficando por aqui.

Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.

 

 

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados