quarta-feira, julho 29, 2009

Silverlight :: Grid :: Adicionando componentes dinamicamente

Como nem tudo é alegria na vida de um programador e as vezes temos que adicionar um componente dinamicamente no codigo ou ler um arquivo de um template e criar uma tela apartir dele. Pelo menos sempre tem uma solução :P a um tempo atras desenvolvi um algoritmo que le uma classe ou um xml e cria a tela em tempo de execução. Como os controles do Silverlight são diferentes não foi so migrar o codigo para o Silverlight e pronto. Abaixo um exemplo basico de como criar as linhas e colunas e adicionar no Grid, comentado no post anterior.

gridCadastro.ColumnDefinitions.Add(new ColumnDefinition());
gridCadastro.RowDefinitions.Add(new RowDefinition());

TextBox txt = new TextBox();
TextBlock lbl = new TextBlock();

//label
lbl.Text = "e-mail";
lbl.SetValue(Grid.RowProperty, 0);
lbl.SetValue(Grid.ColumnProperty, 0);
lbl.HorizontalAlignment = HorizontalAlignment.Left;

//textbox
txt.MaxLength = 30;
txt.Width = 100;
txt.Name = "txtEmail";
txt.SetValue(Grid.RowProperty, 0);
txt.SetValue(Grid.ColumnProperty, 1);
txt.HorizontalAlignment = HorizontalAlignment.Left;

gridCadastro.Children.Add(lbl);
gridCadastro.Children.Add(txt);