保留Silverlight视图的状态

时间:2011-10-14 08:23:10

标签: c# .net silverlight xaml windows-phone-7

我开始在windowslight手机的silverlight中开发。据我了解,Silverlight中的xaml视图是无状态的。

如何使用列表框保留视图,以便在返回之后,我不必在该视图中重新加载数据?

以下是一个例子:

假设我有一些列表项目,包含来自互联网的一些照片,文字等。  单击列表框项目时,我将进入相应项目的详细视图。当我回去时,重新加载列表框效率不高(从时间,处理,带状等角度来看)。我如何保存该视图,以便我不必重新加载它?可以吗?

UPDATE :我刚刚在视图中启动了一个计时器并导航到另一个计时器,当我回去时,计时器仍在运行(这是一个Threading.Timer),这是否意味着视图不是无状态的,导航到其他视图时它们不会被破坏吗?

2 个答案:

答案 0 :(得分:2)

尝试使用Mat laceys Tombstone助手,它可以很容易地保存所有Silverlight页面的状态,事实上在大多数情况下,每页只需要两行代码。

WP7 Tombstone helper

答案 1 :(得分:1)

视图可能是无状态本身,但没有什么能阻止它们被绑定到跨视图保留的状态/数据。 Silverlight更像是桌面应用程序,而不是ASP.Net应用程序。 如果视图中的计时器仍在运行(他们将会运行),那是因为视图仍在某处缓存(或者计时器本身阻止视图被处理)。

状态问题(在WP7应用程序上)与您拥有的有限内存量有关,因此您需要注意保留的内容。

如果您的应用已退出并重新启动,则需要将数据归档到隔离存储中(如果您不希望每次启动时都将其从网络重新流式传输),但对于应用程序保留已关闭你希望在视图之间留下什么。