gpt4 book ai didi

windows-phone-7 - 如何: Data Persistence in Windows Phone

转载 作者:行者123 更新时间:2023-12-01 02:41:01 24 4
gpt4 key购买 nike

我正在编写一个 Windows Phone 应用程序。我想要做的是,当应用程序启动时,它会获取一些数据(设置或其他),并且我希望这些数据在应用程序的整个生命周期中持续存在;即,我不想在需要该数据时继续阅读 IsolatedStorage 或调用服务器。

执行此操作的最佳方法是什么(加载和共享)?牢记以下几点:

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

  • 提前致谢。

    最佳答案

    Phil 提到的静态类是一个好主意,但我建议考虑使用依赖注入(inject)。您可能不需要完整的 IoC 容器,但这可能对您的场景有所帮助。 Caliburn.Micro 使得集成这样一个容器变得非常容易。

    创建 Settings类(class)。 (我还将创建一个 ISettings 接口(interface),以便您可以将 stub 设置传递到您的 View 模型中进行测试,但这是额外的好处。)然后让您的所有 View 模型都需要一个 ISettings 的实例在他们的构造函数中。

    当您的应用程序启动时,您会创建一个 Settings 的实例。从IsolatedStorage 或任何其他你有设置的地方读取,然后将该实例传递给任何创建的ViewModel。

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

    这种情况的一个例子:

    AppBootstrapper类(class):

    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 的所有设置。

    关于windows-phone-7 - 如何: Data Persistence in Windows Phone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8357890/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com