GoBack()发生时如何通知页面?

时间:2017-02-04 11:05:43

标签: c# xaml uwp uwp-xaml

这是我的应用程序的作用:

第一页可以导航到第二页,第二页显示数据列表。用户可以选择其中一个然后应用程序将数据带回第一页。

听起来很简单,但我对Windows Mobile Navigation Model感到困惑。

第一页导航到第二页,使用以下代码:

this.Frame.Navigate(typeof(SecondPage));

,第二页使用以下代码返回:

this.Frame.GoBack();

如果第二页消失,第一页怎么知道?我想在第二页消失后更新第一页上的UI。 现在,我使用静态类来保存用户选择的数据,但我不知道何时应该是更新第一页的正确时间。

有没有办法获得活动或通知?

1 个答案:

答案 0 :(得分:2)

这非常简单,因为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
    }
}