XAML 如何在MAUI中访问NavigatedToEventArgs中的PreviousPage属性

tquggr8v  于 2023-01-18  发布在  其他
关注(0)|答案(2)|浏览(145)

我正在尝试确定**.NET MAUI**应用程序中当前页的上一页。
例如,存在3个页面Page 1、Page 2、Page 3
当从Page 1转到Page 2时,在Page 2中,我希望访问PreviousPage属性,该属性将“Page 1”作为值。
当从Page 3转到Page 2时,在Page 2中,PreviousPage属性给我“Page 3”作为值。
^^但是,当VS命中断点时,我只能在调试模式下看到“PreviousPage”属性成员。我无法在代码中访问它。智能感知也不显示这一点。
我怎样才能在我的代码中访问和使用这个“PreviousPage”?还有其他方法吗?
参见屏幕截图。

我正在使用:Microsoft Visual Studio社区2022(64位)-预览版本17.5.0预览1.0
谢谢你。

rta7y2nd

rta7y2nd1#

https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/shell/navigation?view=net-maui-7.0
Navigating事件Shell类定义Navigating事件,该事件将在由于编程导航或用户交互而要执行导航时激发。Navigating事件附带的ShellNavigatingEventArgs对象提供下列属性...
从技术上讲,您可以实现自己的自定义逻辑,以查看是否加载了某些内容、源代码是什么、导航路径等。
您的要求可以用最少的代码量来实现。
然而,我不认为导航堆栈是一种健康的方式来检查是否有东西显示在您的页面上。

5cg8jx4n

5cg8jx4n2#

你可以在导航堆栈中获得所有页面,只需使用:

var stack = Application.Current.MainPage.Navigation.NavigationStack;
int count = Application.Current.MainPage.Navigation.NavigationStack.Count;

当前页是堆栈中的最后一页,名称为(count - 1)index(因为它是从零开始的index),因此前一页是(count - 2)index。
希望对你有用。

相关问题