页面导航 - 将数据保存在上一页

时间:2014-01-11 06:44:03

标签: windows-phone-7 windows-phone-8 windows-phone windows-phone-7.1

在Windows手机应用程序中,页面导航到另一个页面,然后按下后退按钮,返回上一页。现在,在上一页中,必须显示以前的数据。但它不会立即显示并需要一些时间来加载。如何解决这个问题? 总的来说问题是如何维护后面导航中显示的页面内容(包含动态数据)?

3 个答案:

答案 0 :(得分:0)

使用PhoneApplicationService类在页面之间导航时保​​留数据。这是some samples。实际上,这很容易:

protected override void OnNavigatedFrom(NavigationEventArgs args)
{ 
    if (ContentPanel.Background is SolidColorBrush) 
    { 
        Color clr = (ContentPanel.Background as SolidColorBrush).Color; 
        if (args.Content is MainPage) (args.Content as MainPage).ReturnedColor = clr; 
        // save color
        PhoneApplicationService.Current.State["Color"] = clr; 
    } 
    base.OnNavigatedFrom(args); 
} 

protected override void OnNavigatedTo(NavigationEventArgs args) 
{ 
    // restore color
    if (PhoneApplicationService.Current.State.ContainsKey("Color")) 
    { 
        Color clr = (Color)PhoneApplicationService.Current.State["Color"];
        ContentPanel.Background = new SolidColorBrush(clr);
    } 
    base.OnNavigatedTo(args); 
}

答案 1 :(得分:0)

答案 2 :(得分:0)

如果所有控件都绑定到View Model中的属性,则可以使用View Model的单吨对象将数据存储在页面中。 然后,如果您在离开页面时没有清除控件的值,那么当您导航回该屏幕时,如果提供了所有控件,数据将显示在页面中