我需要将大量数据从一个页面传递到另一个页面。据我所知,我有两个选择, PhoneApplicationService和IsolatedStorageSettings。PhoneApplicationService.Current.State vs IsolatedStorageSettings windows phone
PhoneApplicationService在页面之间传递时会产生很多延迟。所以,我使用了IsolatedStorageSettings,但是我在从IsolatedStorageSettings中移除一个项目时收到了一些异常对象的创建。
哪个最适合处理大型复杂物体?
在从IsolatedStorageSettings中移除项目时实际发生了什么?
感谢
编辑: 当我明确或删除IsolatedStorageSettings一个项目,对于已经存储的密钥的新对象是创建 。
示例代码:
if (IsolatedStorageSettings.ApplicationSettings.Remove("FormFields"))
{
IsolatedStorageSettings.ApplicationSettings.Add("FormFields", app.response);
}
else
{
IsolatedStorageSettings.ApplicationSettings.Add("FormFields", app.response);
}
因此,使用'IsolatedStorage'将数据写入存储(如所暗示的)。这意味着数据本质上是“永久”并写入磁盘,这会导致磁盘写入延迟。你真正想要的是与'ServiceLocator'结合使用的'ViewModel'。这种模式允许你做的是有一个地方存储(基本上)某些类的单例('ViewModel's),它们存储View所需的数据。你应该检查MvvmLight,因为它们提供了一个非常简单的实现'ViewModel'和'ServiceLocator',它应该是可移植的(因为你包括WP7和WP8)。 – 2014-09-22 18:37:40
谢谢Nate。是的,你说的是对的,我已经实现了维护ViewModel,所以现在切换回不同的方法涉及很多工作,但我只是寻找哪一个是从一个页面传递到另一个页面的最佳方式。 – 2014-09-23 02:08:14
然后关键是ServiceLocator。这可以让你轻松地说一些像ViewModelLocator.MyPageVM。那么你不需要在页面之间传递引用;他们可以静态检索它们。 – 2014-09-23 02:24:48