带参数的UWP Frame.GoBack

带参数的UWP Frame.GoBack,uwp,windows-10,win-universal-app,Uwp,Windows 10,Win Universal App,场景是我有一个日历页面,该页面显示一个月中的所有天,每天都有一个添加按钮: 当我单击add按钮时,它会将我带到另一个页面,如果用户点击hardware back按钮,我希望应用程序返回日历页面,但我希望页面滚动到用户最初点击add按钮的日期 滚动到日期没有问题-如果作为测试,我使用NavigationEventArgs.Parameter=“2016-01-17”导航到一个页面,那么我的页面会滚动到第17个页面 我的问题是,我似乎无法在rootFrame.GoBack()上指定参数呼叫 那么,有

场景是我有一个日历页面,该页面显示一个月中的所有天,每天都有一个添加按钮:

当我单击add按钮时,它会将我带到另一个页面,如果用户点击hardware back按钮,我希望应用程序返回日历页面,但我希望页面滚动到用户最初点击add按钮的日期

滚动到日期没有问题-如果作为测试,我使用
NavigationEventArgs.Parameter=“2016-01-17”
导航到一个页面,那么我的页面会滚动到第17个页面

我的问题是,我似乎无法在
rootFrame.GoBack()上指定参数呼叫


那么,有没有办法在
rootFrame.GoBack()上指定参数
调用手动编辑backbuttonstack(如果有这样的事情),这样就有了所需的参数。

无法使用
GoBack
方法直接传递参数,但有一个解决方法:

在日历页上,将
NavigationCacheMode
设置为
NavigationCacheMode。必需的
因此,当您调用
Frame.GoBack
时,日历页状态将与导航到不同页面之前相同:

<Page <!-- some unrelated XAML code -->
      NavigationCacheMode="Required"
      >

您好-谢谢,这确实有效,但我有一个覆盖它的
ScrollToDate
功能-我需要它来正常导航应用程序(即不通过后退按钮)-是否有办法确定您是否通过“后退”按钮到达页面?我的代码看起来与您所描述的类似-唯一的问题是默认设置为无参数=滚动到今天的日期,参数=滚动到指定的日期,如果通过“后退”按钮到达,则不滚动-仅使用缓存页面。我不确定我能不能拿到。现在我明白了!您可以在每次导航到页面时传递参数。例如,使用
string.Empty
aka
导航到今天的日期,使用带有日期的字符串导航到指定的日期。
string parameter = e.Parameter as string;

if (parameter != null)
{
    // Use parameter to scroll to date you need
}