Inquiridor
Passando Variáveis para XAML

Pergunta
-
Fala pessoal, tudo bom?
Dessa vez, venho até vocês com uma dúvida que será essencial nas minhas próximas aplicações, e ainda não sei muito bem como funciona.
Quero saber como devo fazer para um determinado TextBlock (por exemplo) ter como Texto/Conteúdo o valor de uma String ou uma Inteira qualquer...
Ao mudar o valor da variável, o conteúdo do meu TextBlock mudaria também, etc.
Como poderia fazer isto?
Obrigado, amigos.
sexta-feira, 22 de junho de 2012 00:17
Todas as Respostas
-
Você quer que somente uma parte da string exiba no seu textbox?sexta-feira, 22 de junho de 2012 16:22
-
Rafael,
Acredito que o que esteja procurando é o conceito de Data Binding.
Recomendo dar uma olhada nestes links:
http://blogs.msdn.com/b/amit_chatterjee/archive/2011/04/16/building-a-windows-phone-7-application-data-binding-and-persistence.aspx
http://mscerts.programming4.us/windows_phone/developing%20applications%20for%20windows%20phone%207%20%20%20data%20binding%20(part%201).aspx
http://mscerts.programming4.us/windows_phone/Developing%20Applications%20for%20Windows%20Phone%207%20%20%20Data%20Binding%20(part%202).aspx[]s
Thiago J. Mônaco
MVP Windows Phone Development
Nokia Developer Champion
MCP, MCAD, MCSD, MCDBA, MCTS, MCPD and MCT Professional
Scrum Developer I and Professional Scrum Master
http://www.windowsphonebrasil.net
@thiagojmonaco
- Sugerido como Resposta Andrey Gonçalves dos Santos sexta-feira, 3 de agosto de 2012 02:39
sexta-feira, 22 de junho de 2012 17:13 -
Data binding amigo!
Atc, Fabriccio Bernardes.
quinta-feira, 28 de junho de 2012 18:32 -
Rafael, você poderá fazer por Binding ou alterando o valor diretamente. Veja:
<controls:PanoramaItem Header="hoje"> <!--Double line list with text wrapping--> <StackPanel Margin="0,-20,0,0"> <TextBlock x:Name="tblSomaToday" Style="{StaticResource PhoneTextTitle1Style}" Margin="0,-20,0,0"></TextBlock> <ListBox x:Name="lstToday" Height="400" Margin="0,20,-12,0"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Margin="0,0,0,17" Width="432" Height="70"> <TextBlock x:Name="txtValor" Text="{Binding Path=ValorToday}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}" Foreground="{StaticResource PhoneAccentBrush}"/> <TextBlock x:Name="txtDescricao" Text="{Binding Path=DescricaoToday}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </StackPanel> </controls:PanoramaItem>
O primeiro TextBlock (tblSomaToday) altero o texto diretamente do C# com this.tblSomaToday.Text = "Texto desejado"
Os demais, como o txtValor, cria uma classe no C#, conforme exemplo abaixo, para alimentar através do Text="{Binding Path=ValorToday}"
/// <summary> /// Classe para atualização da lista de LANÇAMENTOS DO DIA /// </summary> public class clsListaTodayBinding { public string ValorToday { get; set; } public string DescricaoToday { get; set; } public string TipoToday { get; set; } public string ValorTodayCalc { get; set; } } /// <summary> /// Classe de carga da lista de LANÇAMENTOS DO DIA /// </summary> public class ListaToday : List<clsListaTodayBinding> { public ListaToday() { using (FingersOnFinanceContext ctx = new FingersOnFinanceContext(sConn)) { var query = from x in ctx.FOFkLancamentos where x.LctDataLancamento == DateTime.Today orderby x.LctNumero descending select x; foreach (var l in query) { Add(new clsListaTodayBinding { ValorToday = l.LctValor.Value.ToString("C"), DescricaoToday = l.LctDescricao.ToString(), TipoToday = l.FOFkCategoriaDespesa.CatTipo, ValorTodayCalc = l.LctValor.Value.ToString(), }); } } } } private void AtualizaLista() { this.lstToday.ItemsSource = new ListaToday(); }
Andrey Kurka
- Sugerido como Resposta Andrey Gonçalves dos Santos sexta-feira, 3 de agosto de 2012 02:39
quarta-feira, 4 de julho de 2012 02:34