Clique e receba as novidades quentinhas no Telegram

lego

Olá pessoal, tudo bom?

Quem nunca passou pela situação de não conseguir prever quantos controles de tela de um determinado tipo serão necessários para apresentar ou compor o layout de uma APP? Geralmente, nesses casos, temos dados sendo gerados ou recebidos dinamicamente através de webservices ou mesmo via consultas REST retornando JSON.

Pensando nessa situação, resolvi escrever esse post para tratar justamente do assunto “Como criar controles XAML via código em C# e adiciona-los na interface da APP”.

Em primeiro lugar temos que ter em mente que esses controles ao serem criados dinamicamente deverão ser inseridos dentro de algum container previamente existente na APP, como por exemplo, um StackPanel, Grid, etc. Sabendo disso, basta criar os elementos dentro de algum método/ação do seu código C# e ir posicionando-os, ou melhor, inserindo-os no container desejado.

Para exemplificar melhor, observe o código C# abaixo:

...
...
//Considere que a variável "membros" abaixo é o resultado de uma consulta a um arquivo XML
var membros = e.Result.Descendants("membros").Elements("membro").ToList();
for (int i = 0; i < membros.Count; i++)
{
  TextBlock txt = new TextBlock(); //Elemento XAML sendo criado via C#
  txt.Text = string.Format("» {0} - {1} - {2} - ({3})",
             membros[i].Element("nome").Value.Trim(),
             membros[i].Element("partido").Value.Trim(),
             membros[i].Element("uf").Value.Trim(),
             membros[i].Element("situacao").Value.Trim());
  txt.Width = 450;
  txt.TextWrapping = TextWrapping.Wrap;
  //ContentPanel seria o nome de um elemento do tipo StackPanel,
  //sendo assim, estamos adicionando vários TextBlocks como "filhos"
  //do StackPanel (container)
  ContentPanel.Children.Add(txt);
}
...
...

Viram como é simples?

Post Relacionado: 

Grande abraço,
Eduardo Henrique Rizo (@eduardorizo)

Fonte: Blog do Eduardo H. Rizo