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.
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
[sourcecode language=”xml”] …<Button Name="btnNavegar1" Content="Chamar página 2" Click="btnNavegar1_Click" />
…
[/sourcecode]
Trecho de código em C# que irá “chamar” a página 2
[sourcecode language=”csharp”]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
[sourcecode language=”xml”] …<Button Name="btnNavegar1" Content="Chamar página 2" Click="btnNavegar1_Click" />
…
[/sourcecode]
Trecho de código em C# que irá “chamar” a página 2
[sourcecode language=”csharp”]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:
[sourcecode language=”csharp”]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 (@eduardorizo)
Post Relacionado:
Comentários