GoBack()发生时如何通知页面?
How to notify the page when GoBack() happened?
这是我的应用程序的作用:
第一页可以导航到第二页,第二页显示数据列表。用户可以选择其中一个,然后应用程序会将数据带回第一页。
听起来很简单,但我对 Windows 移动导航模型感到困惑。
第一页导航到第二页,使用此代码:
this.Frame.Navigate(typeof(SecondPage));
第二页使用下面的代码返回:
this.Frame.GoBack();
第一页怎么知道第二页消失了?我想在第二页消失后更新第一页上的 UI 。
现在,我使用静态 class 来保留用户选择的数据,但我不知道什么时候应该更新第一页。
有什么方法可以获取事件或通知吗?
这很简单,因为 UWP 会为您完成此操作。我注意到您没有使用 MVVM,因此您可以简单地覆盖页面中的 OnNavigatedTo
事件。当导航到您的页面完成时触发此事件(因此第二个屏幕消失)。只需检查 NavigationMode.Back
以确认您正在返回而不是向前导航。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == NavigationMode.Back)
{
// coming from 2nd page, so refresh your data
}
}
这是我的应用程序的作用:
第一页可以导航到第二页,第二页显示数据列表。用户可以选择其中一个,然后应用程序会将数据带回第一页。
听起来很简单,但我对 Windows 移动导航模型感到困惑。
第一页导航到第二页,使用此代码:
this.Frame.Navigate(typeof(SecondPage));
第二页使用下面的代码返回:
this.Frame.GoBack();
第一页怎么知道第二页消失了?我想在第二页消失后更新第一页上的 UI 。 现在,我使用静态 class 来保留用户选择的数据,但我不知道什么时候应该更新第一页。
有什么方法可以获取事件或通知吗?
这很简单,因为 UWP 会为您完成此操作。我注意到您没有使用 MVVM,因此您可以简单地覆盖页面中的 OnNavigatedTo
事件。当导航到您的页面完成时触发此事件(因此第二个屏幕消失)。只需检查 NavigationMode.Back
以确认您正在返回而不是向前导航。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (e.NavigationMode == NavigationMode.Back)
{
// coming from 2nd page, so refresh your data
}
}