返回Windows Phone时,将数据传回上一页的最佳方法

时间:2012-08-03 04:06:42

标签: c# windows-phone-7 navigation

单击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的字典,在那里我将保存应该在某些点处理的数据,然后,如果我回到主页并且我在这个字典中有数据,我会刷新ui。 这会是一个好主意吗?

谢谢大家!

1 个答案:

答案 0 :(得分:0)

我建议您遵循MVVM架构,从子页面在视图模型中设置属性并在父页面上访问它。我希望它可以帮到你