locked
Buscar valores do ListBox do windows phone RRS feed

  • Pergunta

  • Olá galera sou novo em desenvolvimento WP 7, gostaria de dicas ... na verdade é uma aplicação que estou fazendo para meu trabalho de conclusão,  mas por exemplo quando queremos buscar um valor de um componente no gridview usamos o método findControl(), em um ListBox como podemos  fazer isso  ? Exemplo do meu Listbox:

     <ListBox x:Name="lstChamada" Margin="11,185,18,175" Grid.Column="1">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                <ListBoxItem>
                                    <TextBlock x:Name="txtIdAluno" Width="50" Text="{Binding idAluno}" FontSize="28"></TextBlock>
                                </ListBoxItem>
                                <ListBoxItem>
                                    <CheckBox Content="{Binding nome}" x:Name="chckNomeAluno"/>
                                </ListBoxItem>                                                         
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>


    leomaica

    sábado, 20 de outubro de 2012 17:42

Todas as Respostas

  • Leo, dá uma olhada neste tópico e veja se ajuda.

    Tem ainda este trecho de código para você entender melhor:

    Preenchendo o List:

            private void AtualizaListaDisciplinas()
            {
                this.lstDisciplinas.Items.Clear();
    
                var lista = new ListaDisciplina();
    
                foreach (var item in lista)
                {
                    this.lstDisciplinas.Items.Add(item.sListaDisciplinaDescricao);
                }
            }
    
    
    
    
            #region CLASSES DE DISCIPLINA
    
            public class ListaDisciplina : List<clsListaDisciplinaBinding>
            {
                public ListaDisciplina()
                {
                    using (FingersOnStudiesContext ctx = new FingersOnStudiesContext(App.sConn))
                    {
                        var query = from x in ctx.FOSkDisciplinas
                                    orderby x.DscNome ascending
                                    select x;
    
                        foreach (var item in query)
                        {
                            Add(new clsListaDisciplinaBinding
                            {
                                iListaDisciplinaCodigo = item.DscCodigo,
                                sListaDisciplinaDescricao = item.DscNome,
                                sListaDisciplinaDescricaoAbreviada = item.DscNomeAbreviado,
                                sListaDisciplinaCor = item.DscCor,
                            });
                        }
                    }
                }
            }
    
            public class clsListaDisciplinaBinding
            {
                public Int32 iListaDisciplinaCodigo { get; set; }
                public String sListaDisciplinaDescricao { get; set; }
                public String sListaDisciplinaDescricaoAbreviada { get; set; }
                public String sListaDisciplinaCor { get; set; }
            }
            #endregion

    Selecionando as informações da linha selecionada no List:

            private void lstDisciplinas_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if (this.lstDisciplinas.SelectedIndex != -1)
                {
                    var lista = new ListaDisciplina();
    
                    foreach (var l in lista)
                    {
                        if (l.sListaDisciplinaDescricao.ToString() == this.lstDisciplinas.SelectedItem.ToString())
                        {
                            pubiCodigo = l.iListaDisciplinaCodigo;
                            
                            this.txtNome.Text = l.sListaDisciplinaDescricao;
                            this.txtNomeAbreviado.Text = l.sListaDisciplinaDescricaoAbreviada;
                            this.cslCor.Color = l.sListaDisciplinaCor;                         
                            break;
                        }
                    }
                }
            }
    

    Abraço


    Andrey Kurka

    segunda-feira, 22 de outubro de 2012 02:53
  • Obrigado Andrey

    Na verdade estou carregando esse listbox com um webservice, entao aqui no SelectionChanged que não estou conseguindo pegar os valores dos componentes TextBlock 


    leomaica

    segunda-feira, 22 de outubro de 2012 21:41
  • Você não pega diretamente de um TextBlock que faz parte de um Template, como no .Net

    Crie classes para preecher o listbox e depois utilize estas classes para recuperar as informações usando o SelectedIndex do listbox. O exemplo acima faz isso para 3 informações, enquanto que no listbox somente uma informação é exibida. Use a classe para fazer o Binding.

    Abraço.


    Andrey Kurka

    terça-feira, 23 de outubro de 2012 17:17