3

当我单击 Windows Phone 中的后退按钮时,将数据传回上一页的最佳方法是什么。我想要做的是,当用户从我的一个子页面返回主页时,如果我在子页面中保存了某些内容,则主页应该刷新数据。前进时很简单,我只是简单地使用QueryStringm,但我不知道当我回去时该怎么办。我试过这个:

private void PhoneApplicationPage_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
{
    e.Cancel = true;
    NavigationContext.QueryString.Add("test", "test");
}

然后,在主页中,我尝试这样做:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
    if (e.NavigationMode == System.Windows.Navigation.NavigationMode.Back)
    {
        if (NavigationContext.QueryString.ContainsKey("test"))
        {
            MessageBox.Show(NavigationContext.QueryString["test"]);
        }
    }
}

我这样做只是为了测试目的,但我没有运气,我在互联网上搜索了答案,但没有找到任何令人满意的答案。我考虑在 App.xaml.cs 中放入一个名为 Pending 的字典,我将在其中保存应该在某些点处理的数据,然后,如果我返回主页并且我有这本字典中的数据,我会刷新用户界面。会不会是个好主意??

谢谢你们!

4

1 回答 1

0

我建议的是,如果您遵循 MVVM 架构,请从子页面在视图模型中设置一个属性并在父页面上访问它。希望对你有帮助

于 2012-08-03T09:30:46.787 回答