Usuário com melhor resposta
Pegar Primary Key em um ListPicker

Pergunta
-
Olá..
Iniciante...
Estou precisando pegar valor dentro de um ListPicker que eu carrego através de web service do BD, o problema que quando uso a propriedade SelectedIndex não me retorna o valor correspondente a Primary Key,
Código XAML:
<TextBlock x:Name="item" Text="{Binding FilNom}" FontSize="26" Margin="10, 6, 0, 8" /> <TextBlock x:Name="item2" Text="{Binding FilCod}" FontSize="26" Margin="10, 6, 0, 8" Visibility="Collapsed"/>
CodeBehind:this.lpFilial.ItemsSource = e.Result.ToList();
Carrega os Nomes ok, a questão e como pegar o Código correto e detalhe.. tem caso que trabalho com chave composta..
todo help é bem vindo ;)
valeu
Respostas
-
Eu passei por uma dúvida dessas, só que no meu caso o ListPicker era preenchido por um list de uma classe:
string sPN = (((Model.ParceirosNegocios)lpParceiros.SelectedItem).RazaoSocial);
Model.ParceirosNegocios = Minha classe;
Espero ter ajudado.
Brian Souza - MCP Desenvolvedor C#.Net
- Sugerido como Resposta Brian Souza quarta-feira, 14 de novembro de 2012 18:38
- Editado Brian Souza quarta-feira, 14 de novembro de 2012 18:39 Erro de digitação
- Marcado como Resposta wasy segunda-feira, 19 de novembro de 2012 11:16
Todas as Respostas
-
Cara,
Eu passei por esta dificuldade também e resolvi da seguinte maneira:
//Pegar Código da Categoria selecionada Int32 iCategoria = 0; for (int i = 0; i < this.lstCategoria.Items.Count; i++) { if (this.lstCategoria.Items[i].ToString() == this.lstCategoria.SelectedItem.ToString()) { iCategoria = Convert.ToInt32(lstCategoriaValue.Items[i].ToString()); break; } }
Guardo o SelectedIndex e depois faço uma busca no controle (ou List) até chegar na posição guardada, afinal, SelectedIndex é a posição do registro na lista. No caso de chaves compostas, faça com que sua classe contenha estas informações da chave e você vai encontrar os dados da chave composta quando chegar no Index correto.
Devem existir outras maneiras, mas esta tem sido útil e performática porque não utilizo listas grandes.
Abraço.
Andrey Kurka
- Editado Andrey Gonçalves dos Santos segunda-feira, 22 de outubro de 2012 02:48
- Sugerido como Resposta Andrey Gonçalves dos Santos segunda-feira, 29 de outubro de 2012 19:41
-
boa a idéa Andrey do List auxiliar... adicionei um auxiliar alimentando apenas com o campo da chave primaria e posso pegar o valor do auxiliar com base no index do original
lpAux.Items[this.lpFilial.SelectedIndex].ToString()
o problema que está vindo o nome do objeto.. não o valor do campo..
Index PK O que Vem
0 1 PhoneApp.tb_Filial
1 2 PhoneApp.tb_Filial
2 4 PhoneApp.tb_Filial
3 8 PhoneApp.tb_Filialagora falta trazer o valor correto e não o objeto.. e porque consigo visualizar correto dentro do ListPicker os valores ?
-
Utiliza o SelectedItem.
Olha este post que vai te ajudar. Qualquer dúvida é só chamar.
Abraço.
Andrey Kurka
- Sugerido como Resposta Andrey Gonçalves dos Santos segunda-feira, 29 de outubro de 2012 19:41
-
Eu passei por uma dúvida dessas, só que no meu caso o ListPicker era preenchido por um list de uma classe:
string sPN = (((Model.ParceirosNegocios)lpParceiros.SelectedItem).RazaoSocial);
Model.ParceirosNegocios = Minha classe;
Espero ter ajudado.
Brian Souza - MCP Desenvolvedor C#.Net
- Sugerido como Resposta Brian Souza quarta-feira, 14 de novembro de 2012 18:38
- Editado Brian Souza quarta-feira, 14 de novembro de 2012 18:39 Erro de digitação
- Marcado como Resposta wasy segunda-feira, 19 de novembro de 2012 11:16
-