Curso Windows Phone – Enviar parâmetros de uma página para outra da APP

Olá pessoal, tudo bom?

Segue uma dica rápida sobre o envio de parâmetros entre páginas da APP. A técnica é bastante simples e, quem já desenvolve para web, irá perceber que a mesma é muito similar à passagem de parâmetros via QueryString do ASP.NET.

A imagem abaixo representa uma situação teste, onde temos do lado esquerdo uma página do WP que o usuário irá informar um valor a ser enviado para a página do lado direito, que por sua vez, deverá recepcionar esse parâmetro e exibi-lo na tela.

parametros

Na página onde se envia o parâmetro, temos um botão com a inscrição “Enviar Valor para Próxima Página”. Vejamos a implementação do evento click deste botão em C#:

...
private void Button_Click(object sender, RoutedEventArgs e)
{
   string uri = string.Format("/Pagina2.xaml?nomeParametro={0}", txtValor.Text);

   //Caso você queira passar mais de um parâmtro, basta montar a string uri com o seguinte formato:
   //string uri = "/Pagina2.xaml?nome=Eduardo H. Rizo&twitter=@eduardorizo&blog=http://www.eduardorizo.com.br
   //Repare que a separação para novos parâmetros é feita através do caracter &
   //e que no caso da string de exemplo temos os parâmetros nome, twitter e blog

   NavigationService.Navigate(new Uri(uri, uriKind.Relative));
}
...

Já na página onde iremos recepcionar o(s) parâmetro(s), temos que sobrescrever o método OnNavigatedTo para que nele possamos receber os valores enviados pela página anterior. Segue o código em C#:

...
protected override void OnNavigatedTo(NavigationEventArgs e)
{
   if (NavigationContext.QueryString["nomeParametro"] != null)
      txtParametro.Text = NavigationContext.QueryString["nomeParametro"];

   base.OnNavigatedTo(e);
}
...

Como disse anteriormente, o exemplo é bem simples, mas demonstra como passar e recepcionar valores/parâmetros entre as páginas da APP.

Grande abraço !
Eduardo Henrique Rizo

MCP

Post Relacionado: 

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

17 comentários em “Curso Windows Phone – Enviar parâmetros de uma página para outra da APP”

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

      1. mmmmm, eu não podia deixar que eu envio o que eu tenho até agora: a ListBox tem 2 TextBlock e um botão, pressionar o botão quero enviar txtFecha y txtName e dados, mas não sei como enviar selecione:

      2. Você quer enviar mais de um parâmetro?
        Se sim, observe nos comentários do código que está no post pois lá tem a explicação de como fazer.

        É isso?

  2. ok, mas o problema aqui não é como selecionar ou dados que está dentro da caixa de listagem, eu só preciso disso, eu espero que você saiba como

    1. O último comentário está errado: o problema não é como selecionar ou dados que está dentro da ListBox, isso é tudo que eu preciso, eu espero para saber como

  3. Bom dia,
    Poderia criar um artigo com exemplo de como abrir uma imagem que está hospedada em um site na sua aplicação windows phone 8?

  4. OI Eduardo,
    Poderia me informar se já publicou algo a respeito de desenvolver para windows phone 8 usando a biblioteca Agility Pack ? caso negativo, poderia criar algum posts sobre esse tema?

  5. Oi, Eduardo
    Quero agradecer pela a ajuda do blog, e tirar uma dúvida, mais uma vez.
    Caso eu queria passar mais de um parâmetro que vão ser definidos por variáveis, como faço?
    Eu fiz isso aqui:

    string uri = string.Format(“/Pages/EditarMA.xaml?NomeAP={0}&N1AP={1}&N2AP={2}&N3AP={3}&N4AP={4}&PFAP={5}&IDA={6}”, NA, N1A, N2A, N3A, N4A, PFA, IDA);

    Fiz isso porque verifiquei que se eu deixar {0} em todos ele vai mandar por parâmetro a primeira variável que está na frente, aí por isso fiz assim, mas quando coloco {1}… Ele não envia parâmetro algum… Poderia me ajudar?

    1. Bom dia Daniel, tudo bom?
      Do jeito como você fez está certo, será que suas variáveis possuem valores?
      De que jeito você está fazendo para recepcionar os parâmetros?

      Abraços,
      Eduardo H. Rizo

  6. Boa noite Eduardo,

    Eu tenho uma aplicação onde em uma pagina possui vários checkbox, gostaria de saber como passar para outra pagina os checkbox que foram selecionados. Eu tentei usar igual você mostra no exemplo porem não funcionou.

      1. Primeiro vou te explicar como funciona meu APP (talvez ajude), Tenho um APP onde o usuário insere dados como nome, local, data e hora, e na próxima tela aparece para ele uma lista com varias opções que são os checkbox, onde ele vai escolher essas opções, e o sistema vai fazer um calculo. Ate ai esta funcionando perfeitamente, o problema e que eu não consigo passar o resultado desse calculo para uma tela, só consigo fazer isso usando Messagebox.Show, que ele exibe o resultado em uma mensagem, mas eu preciso que esse resultado desse calculo apareça em uma tela, onde nessa tela também aparece o nome, local, data e hora inseridos inicialmente, e por fim o sistema envia esse “convite” por sms. Então resumindo minha duvida e como passar o resultado desse calculo para uma tela e não por meio de mensagem, ou seja ao meu ver, envolve tanto recuperação de valores do checkbox quanto passagem de valores.
        Espero que possa me ajudar!

Deixe um comentário para vagabundo05 Cancelar resposta