0

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

+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); 
} 
+0

您可以为我提供示例代码的链接吗? –

+0

答案中有一个示例代码。这段代码有困难吗? – crea7or

+0

实际上,在我的应用程序中,页面包含从服务器加载数据的列表,以及我应该在OnNavigatedFrom和To方法中传递哪些内容? –

0
+0

您可以为我提供示例代码的链接吗? –

+0

crea7or提供了一些示例代码。这个想法是,当你离开一个页面并在NavigatedTo()'上恢复它时,你将页面的状态存储在'PhoneApplicationService'字典或者'OnNavigatedFrom()'的PhoneApplicagePage.State字典中,当你回到那个页面页。 – Pantelis

0

您可以使用视图模型的单吨对象将数据存储在所提供的所有页面控件都绑定到视图模型的属性。 然后,如果在导航离开页面时未清除控件的值,那么当您导航回该页面时,数据将显示在该页面上,例如,在UC浏览器中提供了所有控件

相关问题