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
    }
}