在页面的视图模型中,我试图确定用户来自的页面的名称。导航堆栈看起来只是一个数组Page
,但出于某种原因,以下代码显示了我用来nameof()
从导航堆栈获取页面名称的红线。
var stack = Shell.Current.Navigation.NavigationStack.ToArray();
var indexForPreviousPage = stack.Count() - 2;
if(nameof(stack[indexForPreviousPage]) == nameof(SomePageInMyApp))
{
// Do something
}
如何获取用户来自的页面的名称?除了查看导航堆栈之外,有没有更简单的方法可以获取它?
您无法使用nameof()获取页面名称。因为您的页面是Page类型的实例。您可以做的是将页面转换为其类型,然后检查它。
如果它如此重要,为什么不进行方法扩展
Page
以在导航到下一个页面之前获取页面的副本,例如然后,无论何时导航,您都可以使用方法扩展,例如
await this.GoToAsync(nameof(NextPage));
,您可以阅读内容PageExtensions.NavigatedFrom
以获取最后一页。