Desenvolvimento - Mobile

Entendendo a navegação entre páginas no Windows Phone 7

Veja neste artigo funciona o esquema de navegação entre páginas em uma aplicação para Windows Phone 7

por Joel Rodrigues



Diferente das aplicações Windows Forms e Windows Mobile, no Windows Phone 7 não existem formulários. O esquema se assemelha mais ao ASP.NET com páginas pelas quais o usuário navega. Se considerarmos que as aplicações para Windows Phone são desenvolvidas em Silverlight, esse fato não é estranho.

Um dos principais recursos deste tipo de navegação é o QueryString que, assim como nas aplicações web, nos permite passar parâmetros entre páginas no momento da “chamada”.

Neste contexto, podemos definir alguns elementos de extrema importância e que são a chave para a navegação entre páginas de uma aplicação.

Uri (Uniform Resource Identifier)

Esta classe representa o endereço das páginas na aplicação e sua estrutura é igual a utilizada no ASP.NET. O Uri pode ser do tipo “Absolute”(um endereço simples de página) ou “Relative”(endereço com parâmetros). Abaixo vemos um exemplo de inicialização de um identificador para uma página com parâmetros.

Listagem 1: Inicializando um objeto Uri

Uri uri = new Uri("/paginaConsultaCliente.xaml?codigo=123", UriKind.Relative);

NavigationService

Este objeto, que é uma instância da classe homônima, é responsável por gerenciar a navegação entre páginas. Através dele pode-se direcionar o usuário para a página anterior (GoBack), para a próxima (GoForward), para um endereço específico (Navigate), além de ser possível utilizar outros de seus recursos como ver o histórico de navegação do usuário (dentro do programa). Na Listagem 2 temos um exemplo de navegação.

Como já foi dito, o NavigationServive é um objeto, o qual pertence à página, não sendo necessário instanciá-lo.

Listagem 2: Navegando para uma página

Uri uri = new Uri("/paginaConsultaCliente.xaml?codigo=123", UriKind.Relative);
NavigationService.Navigate(uri);

NavigationContext

Trata-se também de um objeto da classe de mesmo nome e que pertence a cada página. Dele, a propriedade que mais nos interessa é a QueryString a qual, como já foi dito, armazena informações referentes a parâmetros passados durante a navegação.

O QueryString é do tipo IDicionary logo, armazena suas informações como CHAVES e VALORES, os quais podem ser acessados individualmente através das propriedades Key e Values, respectivamente.

Na Listagem 2, foi feita a navegação para a página “paginaConsultaClientes.xaml”, passando o parâmetro “código” de valor “123”. Supondo agora que desejássemos obter o valor deste parâmetro já na página destino, poderíamos usar no evento onLoaded, por exemplo, um código semelhante ao da Listagem 3 logo abaixo.

Listagem 3: Acessando parâmetro através do QueryString

string codigo = NavigationContext.QueryString["codigo"];

Para quem já teve alguma experiência com ASP.NET, não terá muita dificuldade em entender o esquema de navegação do Windows Phone 7 e mesmo quem nunca utilizou nada semelhante, pôde ver aqui o quão simples é para direcionar o usuário para uma “tela” da aplicação.

Então é isso, ficamos por aqui com mais este artigo sobre Windows Phone 7. Espero que tenham gostado e lembro que comentários são bem vindos.

Agradeço a atenção do leitor e até a próxima!

Joel Rodrigues

Joel Rodrigues - Técnico em Informática - IFRN Cursando Bacharelado em Ciências e Tecnologia - UFRN Programador .NET/C# e Delphi há quase 3 anos, já tendo trabalhado com Webservices, WPF, Windows Phone 7 e ASP.NET, possui ainda conhecimentos em HTML, CSS e Javascript (JQuery).