Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Painel
titleIntrodução

O .NET MAUI inclui suporte para navegação de página, que normalmente resulta da interação do usuário com a interface do usuário ou do próprio aplicativo como resultado de alterações internas de estado de objetos.

A lógica de navegação pode residir no code-behind de uma View ou em um ViewModel associado a dados. Embora colocar a lógica de navegação em uma View possa ser a abordagem mais direta, ela não é facilmente testável por meio de testes de unidade. Colocar a lógica de navegação em classes de ViewModel significa que a lógica pode ser verificada por meio de testes de unidade. Além disso, o ViewModel pode implementar a lógica para controlar a navegação para garantir que certas regras de negócios sejam aplicadas. Por exemplo, um aplicativo pode não permitir que o usuário saia de uma página sem primeiro garantir que os dados inseridos sejam válidos.

Um serviço de navegação é normalmente invocado a partir de ViewModels, a fim de promover a testabilidade. No entanto, navegar para Views dos ViewModels exigiria que os ViewModels fizessem referência a View e, particularmente, Views às quais o ViewModel ativo não está associado, o que não é recomendado. Portanto, o MauiNavigationService apresentado aqui especifica o tipo de ViewModel como o destino para o qual navegar.

O aplicativo multiplataforma MinhaQualidadeMaui usa aclasse MauiNavigationService para fornecer navegação ao ViewModel. Essa classe implementa ainterface INavigationService, que é mostrada no seguinte exemplo de código:

Bloco de código
languagec#
themeRDark
titleC#
public interface INavigationService
{
  Task InitializeAsync(string logindata);

  Task NavigateToAsync(string route, IDictionary<string, object> routeParameters = null);

  Task PopAsync();
}

Clique para acessar o arquivo

Essa interface especifica que uma classe de implementação deve fornecer os seguintes métodos:

MétodoPropósito
InitializeAsyncExecuta a navegação quando o aplicativo é iniciado.
NavigateToAsyncExecuta navegação hierárquica para uma página especifica usando uma rota de navegação registrada. Pode, opcionalmente, passar parâmetros de rota nomeados para usar no processamento da página de destino.
PopAsyncRemove a página atual da pilha de navegação.

...