在Windows手机应用程序中,页面导航到另一个页面,然后按下后退按钮,返回上一页。现在,在上一页中,必须显示以前的数据。但它不会立即显示并需要一些时间来加载。如何解决这个问题? 总的来说问题是如何维护后面导航中显示的页面内容(包含动态数据)?
答案 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的单吨对象将数据存储在页面中。 然后,如果您在离开页面时没有清除控件的值,那么当您导航回该屏幕时,如果提供了所有控件,数据将显示在页面中