【发布时间】:2014-03-19 07:58:16
【问题描述】:
我有 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));
我屏幕 B 我正在接收列表并使用它在列表框中显示项目列表。
List<MyTopics> listOfTopics = PhoneApplicationService.Current.State["MyObject"] as List<MyTopics>;
UI 屏幕 B:
文字----------9
我从屏幕 B 的列表框中选择了一些项目并移动到下一个屏幕 C,现在向右的值发生了变化。像 13 或某个值。当我从屏幕 B 单击后退按钮时,它将返回到屏幕 A。现在我在屏幕 A 中拥有的数据不会刷新。
我使用了 onNavigatiedTo(),我在其中调用填充数据的相同方法。
但是应用程序在此处崩溃,因为它无法找到对象列表 -listOfTopics 。
如何解决这个问题?
【问题讨论】:
-
状态不持久msdn.microsoft.com/en-us/library/windowsphone/develop/… 尝试@bit 建议与 ApplicationSettings[]
-
在你的情况下不需要使用PhoneApplicationService,使用静态列表可能会解决你的问题。
-
@Jaihind How?,也请看这里stackoverflow.com/questions/22502518/…
-
将屏幕 1 的 KeepAlive 属性设置为 false
-
@petchirajan keepAlive 在哪里?
标签: c# wpf silverlight listbox windows-phone