Curso Windows Phone – Adicionar controles na interface em tempo de execução

legoOlá 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

[twitter-follow screen_name=’eduardorizo’ show_count=’yes’]

1 comentário em “Curso Windows Phone – Adicionar controles na interface em tempo de execução”

  1. Pingback: Free: Curso Windows Phone – Vários tópicos | Blog do Eduardo H. Rizo

Deixe um comentário