No modelo de visualização de uma página, estou tentando determinar o nome da página de onde o usuário veio. Parece que a pilha de navegação é apenas um array de Page
's, mas por algum motivo, o código a seguir está mostrando as linhas vermelhas onde eu uso nameof()
para obter o nome da página da pilha de navegação.
var stack = Shell.Current.Navigation.NavigationStack.ToArray();
var indexForPreviousPage = stack.Count() - 2;
if(nameof(stack[indexForPreviousPage]) == nameof(SomePageInMyApp))
{
// Do something
}
Como obtenho o nome da página de onde o usuário veio? Existe uma maneira mais fácil de obtê-lo em vez de olhar para a pilha de navegação?
Você não pode obter o nome da sua página usando nameof() . Já que sua página é uma instância do tipo Page . O que você pode fazer é converter a página para o tipo dela e então verificá-la.
Se é tão importante, por que não fazer uma extensão de método
Page
para fazer uma cópia da página antes de navegar para a próxima, por exemploEntão, sempre que você navegar, você pode simplesmente usar a extensão do método, por exemplo
await this.GoToAsync(nameof(NextPage));
, e você pode ler o conteúdo dePageExtensions.NavigatedFrom
para chegar à última página.