Quick Tips: TreeView em WindowsForms – Parte 2

Nesta quick tip veremos como montar visualizações em árvore de um objeto dinamicamente usando Reflection.

Quick Tips: TreeView em WindowsForms – Parte 2

 

Nesta quick tip veremos como usar o montar visualizações em árvore de um objeto dinamicamente usando Reflection.

 

Para isso vamos usar o mesmo exemplo da primeira parte da quickTip. Apenas inclua um botão “LoadList” , como mostrada na figura abaixo.




Implemente a classe Cliente da seguinte forma:

 

public class Cliente

{

public int Codigo { get; set; }

public String Nome { get; set; }

public String Bairro { get; set; }

}

 

É este domínio que trabalharemos para exibir na treeview.

 

private void button2_Click(object sender, EventArgs e)

{

//Cria lista de clientes

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

//Adiciona clientes à lista

  Cliente c = new Cliente();

c.Codigo = 1;

c.Nome = "Ricardo";

c.Bairro = "Relango";

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);

 

//percorre lista de clientes

foreach(Cliente cliente in lista){

//recupera propriedades de Cliente

PropertyInfo[] props = cliente.GetType().GetProperties();

 

//Insere um nó raiz com o código do cliente

TreeNode NodeIns = treeView.Nodes.Add(cliente.GetType().Name + ": " + props[0].GetValue(cliente, null));

//percorre a lista de propriedades

foreach(PropertyInfo p in props){

//Insere nó filho no nó inserido na raiz anteriormente

NodeIns.Nodes.Add(p.Name + ": " + p.GetValue(cliente, null).ToString());

}

}

}

}

 

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