带参数的UWP Frame.GoBack
场景是我有一个日历页面,该页面显示一个月中的所有天,每天都有一个添加按钮: 当我单击add按钮时,它会将我带到另一个页面,如果用户点击hardware back按钮,我希望应用程序返回日历页面,但我希望页面滚动到用户最初点击add按钮的日期 滚动到日期没有问题-如果作为测试,我使用带参数的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()上指定参数呼叫 那么,有
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
}