Ométodo NavigateToAsync , especificado pelainterface INavigationService , permite que os dados de navegação sejam especificados como um IDictionary<string, object> dos dados que são passados para o ViewModel que está sendo navegado, onde normalmente é usado para executar a inicialização. Por exemplo, aclasse LoginViewModel contém umConfigurationCommand que é executado quando o usuário clica no botão de configuração napágina RMSLoginPage . Por sua vez, isso executa ométodo OnConfigurate_ClickedAsync , que é mostrado no seguinte exemplo de código: Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
title | C# |
---|
| protected override async void OnConfigurate_ClickedAsync()
{
bool isExBase = CheckIsExBase();
if (!isExBase)
{
await _navigationService.NavigateToAsync("ReconfigPage",
new Dictionary<string, object> { { "IsBaseExemplo", isExBase } });
}
...
} |
Clique para acessar o arquivo Este método invoca a navegação para arota ReconfigPage , passando a propriedade IsBaseExemplo como parâmetro. OReconfigViewModel possui um atributo adicionado a ele que permite receber dados do serviço de navegação, conforme mostrado no exemplo de código abaixo. Bloco de código |
---|
language | c# |
---|
theme | RDark |
---|
title | C# |
---|
| [QueryProperty(nameof(IsBaseExemplo), "IsBaseExemplo")]
public class ReconfigViewModel : RMSReconfigViewModel
{
public bool IsBaseExemplo
{
set => CanBackup = !value && !string.IsNullOrEmpty(App.GetContexto().User);
}
...
} |
Clique para acessar o arquivo Oatributo QueryProperty nos permite fornecer um parâmetro para uma propriedade para mapear valores e uma chave para localizar valores do dicionário de parâmetros de consulta. Neste exemplo, a chave "IsBaseExemplo" e o valor dela foram fornecidos durante achamada NavigateToAsync . O ViewModel encontrou a chave "IsBaseExemplo" e mapeou o valor para apropriedade IsBaseExemplo . |