C# 你以前是怎么得到佩奇的?沙马林

C# 你以前是怎么得到佩奇的?沙马林,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我有一个问题要问社区,我在互联网上找不到答案 如果我使用var name=this.GetType().name,我得到我现在拥有的页面/活动的名称 我需要知道我之前的页面。如何操作?您可以检查应用程序导航堆栈: var navigation = Application.Current.MainPage.Navigation; var totalPages = navigation.NavigationStack.Count; //currentPage is just the last Pag

我有一个问题要问社区,我在互联网上找不到答案

如果我使用
var name=this.GetType().name,我得到我现在拥有的页面/活动的名称


我需要知道我之前的页面。如何操作?

您可以检查应用程序导航堆栈:

var navigation = Application.Current.MainPage.Navigation;
var totalPages = navigation.NavigationStack.Count;
//currentPage is just the last Page of stack
//var currentPage = navigation.NavigationStack.LastOrDefault();
//or
//var currentPage = navigation.NavigationStack[totalPages - 1];
var previousPage= navigation.NavigationStack[totalPages - 2];

您需要使用设置为主页的
NavigationPage
上的
Navigation
属性。没有更多的代码-说更多的话超出了我的能力。谢谢你的关注,但我需要知道在当前用户阅读有关导航的文档之前获取页面的命令,并且
NavigationPage
,然后你就会拥有它。你能解释得更好吗?每当你浏览应用程序页面时,应用程序的导航堆栈得到更新,您可以在Application.Current.MainPage.Navigation.NavigationStack中观察此堆栈;导航堆栈只是一个页面的“集合”,一般来说是一个页面列表。此堆栈的最后一页是您在应用程序中的当前页面,即lastPage=stack[stack.Count-1],正如您所知,数组和集合的第一个元素从0开始。如果在应用程序中使用CarousePage和Navigation.PushModalAsync(new…()),您的解决方案是否有效?模式页面有一个单独的堆栈。转盘页面本身可以是NavigationStack中的页面(而不是它们的项目)。你的设想是什么?你想要实现什么?