当我们从之前的活动回来时刷新列表框数据

时间:2014-03-19 07:58:17

标签: c# wpf silverlight listbox windows-phone

我有3个屏幕A,B和C,在屏幕A中我正在使用以下方法填充xml中的数据并将其传递给屏幕B:

PhoneApplicationService.Current.State["MyObject"] = listOfTopics; // Passing list which has all topics.
NavigationService.Navigate(new Uri("/ScreenB.xaml", UriKind.Relative));

I屏幕B我正在接收列表并使用它显示列表框中的项目列表。

 List<MyTopics> listOfTopics = PhoneApplicationService.Current.State["MyObject"] as List<MyTopics>;

UI屏幕B:


文字---------- 9


我从屏幕B的列表框中选择一些项目并移动到下一个屏幕C,现在向右的值改变。当我点击屏幕B上的后退按钮时,它将返回到屏幕A.现在屏幕A中的数据没有刷新。

我使用了onNavigatiedTo(),我在调用填充数据的方法。

但是应用程序崩溃了,因为它无法找到对象列表-listOfTopics。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

看看this example

我无法监督您的整个应用程序,但可能是您正在寻找的示例,应用程序级数据中的配方4。

public partial class App : Application
{
   ...
   public List<MyTopics> ListOfTopics { get; set; }
   ...
}

然后,您可以使用

从您的网页访问它
(App.Current as App).ListOfTopics

或者甚至更好的是将它变成ObservableCollection并将其绑定到您的列表。