Universal APPs: Navegação entre páginas

Olá pessoal, tudo bom?

Este é um post básico para quem está iniciando o desenvolvimento de aplicações universais (UWP) e gostaria de saber como proceder a navegação (ligação) entre uma página e outra.

Navegando da página 1 para a página 2
Navegando da página 1 para a página 2

Exemplo 1: Navegação simples

Suponha que você tenha em seu projeto a Pagina1.xaml e a Pagina2.xaml. Na página 1 você tem um botão que ao ser tocado dispara um evento para chamar a página 2. Vejamos:

Trecho de código XAML para definição do botão

...
<Button Name="btnNavegar1" Content="Chamar página 2" Click="btnNavegar1_Click" />
...

Trecho de código em C# que irá “chamar” a página 2


private void btnNavegar1_Click(object sender, RoutedEventArgs e)
{
   Frame.Navigate(typeof(Pagina2));
}

Exemplo 2: Navegação com passagem de parâmetros

Tomando por base o exemplo 1, agora queremos chamar a página 2 passando a ela um conjunto de valores que deverão ser recepcionados para utilização futura, ou seja, a página 1 irá enviar valores que serão utilizados pela página 2.

Trecho de código XAML para definição do botão

...
<Button Name="btnNavegar1" Content="Chamar página 2" Click="btnNavegar1_Click" />
...

Trecho de código em C# que irá “chamar” a página 2


private void btnNavegar1_Click(object sender, RoutedEventArgs e)
{
   List<string> valores = new List<string>
   {
      "Valor 1",
      "Valor 2",
      "Valor 3",
      "Valor 4"
   };
   Frame.Navigate(typeof(Pagina2), valores);
}

Repare que o método Navigate além de chamar a classe Pagina2, também envia por parâmetro a lista de strings valores.

Vale ressaltar que é possível passar quaisquer tipos de objetos como parâmetro.

Na página 2 (Pagina2.xaml.cs) devemos recepcionar o(s) parâmetro(s) através do método OnNavigatedTo. Veja o exemplo abaixo:


protected override void OnNavigatedTo(NavigationEventArgs e)
{
  this.navigationHelper.OnNavigatedTo(e);

  //Todo parâmetro chega pelo argumento e
  //Você o recepciona e converte para o tipo de origem do parâmetro
  
  List<string> dados = e.Parameter as List<string>;
  
  //Fazer o restante de sua implementação aqui...
  //...
  //...
}

Espero ter ajudado.

Abraços,

Eduardo Henrique Rizo

MCP

Post Relacionado: 

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

Deixe um comentário