加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – 如何:Windows Phone中的数据持久性

发布时间:2020-12-14 05:26:35 所属栏目:Windows 来源:网络整理
导读:我正在写一个 Windows Phone应用程序.我想要做的是,当应用程序启动它时会得到一些数据(设置或其他),我希望这些数据在应用程序的整个生命周期中都能保持不变;即,我不想在需要那段数据时继续读取IsolatedStorage或调用服务器. 这样做的最佳方式是什么(加载和共
我正在写一个 Windows Phone应用程序.我想要做的是,当应用程序启动它时会得到一些数据(设置或其他),我希望这些数据在应用程序的整个生命周期中都能保持不变;即,我不想在需要那段数据时继续读取IsolatedStorage或调用服务器.

这样做的最佳方式是什么(加载和共享)?牢记以下内容:

>我希望它符合MVVM标准
>我正在使用Caliburn.Micro
>数据不是只读的.
>该应用程序有多个页面/ View和ViewModel共享数据

提前致谢.

解决方法

菲尔提到的静态类是个好主意,但我建议使用依赖注入.您可能不需要完整的IoC容器,但这可能对您的方案有所帮助. Caliburn.Micro可以很容易地集成这样的容器.

创建一个Settings类. (我还会创建一个ISettings接口,以便您可以将存根设置传递到视图模型中进行测试,但这是一个额外的奖励.)然后让所有ViewModel在其构造函数中需要一个ISettings实例.

当您的应用程序启动时,您创建一个设置实例,该设备从IsolatedStorage或您拥有设置的任何其他位置读取,然后将该实例传递到任何创建的ViewModel中.

该Settings类可以负责在需要时将设置保存回IsolatedStorage.

此场景的一个示例:

在AppBootstrapper类中:

PhoneContainer container;
ISettings settings;

protected override void Configure()
{
    // Your usual stuff go here

    settings = new Settings();
    settings.LoadSettings();
    container.Instance(settings);
}

在您的ViewModel类中:

ISettings settings;

public MainPageViewModel(ISettings settings)
{
    this.settings = settings;
}

此时,您将为ViewModel提供所有可用设置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读