【问题标题】:Windows Phone- How to set LocalSettings first time?Windows Phone - 第一次如何设置 LocalSettings?
【发布时间】:2014-11-07 10:20:45
【问题描述】:

在桌面应用程序或 Web 项目项目中有 App.configs 和 Web.configs 文件来存储设置。这些设置是在开发时(或以后的任何时候)设置的,但如果发生这种情况,则始终是一次操作。

在 Windows Phone 8.1 XAML 中没有任何 App.config 文件,因此开发人员可以使用Windows.Storage.ApplicationData.Current.LocalSettings。好的。

我如何第一次设置这些设置(这意味着在第一次运行应用程序时,我以后只能读取它们并且有时会更新现有值)?当然,我可以在运行应用程序时设置设置,但这很浪费时间。第一次如何在应用程序中设置 LocalSettings?我看到了这个解决方案Is there a "first run" flag in WP7,但我不这么认为,这是唯一的可能性。

【问题讨论】:

  • 可能会帮助This

标签: c# windows-phone-8


【解决方案1】:
var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

// Create a simple setting

localSettings.Values["exampleSetting"] = "Hello Windows";

// Read data from a simple setting

Object value = localSettings.Values["exampleSetting"];

if (value == null)
{
    // No data
}
else
{
    // Access data in value
}

// Delete a simple setting

localSettings.Values.Remove("exampleSetting");

Msdn Reference

Persistance of Data

【讨论】:

  • 这与如何保存、读取、更新设置无关。这一切都与首先设置初始化有关。
  • 在 wp 8.1 到来之前,我使用了 IsolatedStorageSetting 来保存第一次运行标志。我认为你 cud 静态设置 localseettings.Values["FirstRun"]= false 并且当第一次设置它为 true 并播放介绍的东西时,当应用程序打开后这将是“True”所以我们 cud 不是第一次。如果我错了,请纠正
  • 这不是最糟糕的想法,但它需要在程序集中定义所有设置(但这是另一回事)。感谢您提供想法。
  • @Fka,如果你有最好的解决方法,请告诉我
【解决方案2】:

我已经写了代码:

    public void Initialize()
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

        if (!localSettings.Values.ContainsKey(FirstRunSettingName))
        {
            localSettings.Values.Add(FirstRunSettingName, false);
        }

        localSettings.Values.Add(SettingNames.DataFilename, "todo.data.xml");
    }

    public bool IsFirstRun()
    {
        var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;

        if (localSettings.Values.ContainsKey(FirstRunSettingName))
        {
            return (bool)localSettings.Values[FirstRunSettingName];
        }
        else
        {
            return true;
        }
    }

在 App.xaml.cs 文件中:

    public App()
    {
        this.InitializeComponent();
        this.Suspending += this.OnSuspending;

        var storageService = Container.Get<ISettingsService>();

        if (storageService.IsFirstRun())
        {
            storageService.Initialize();
        }
    }

我不确定这是第一次设置设置的正确方法,但它是一些灵魂。

【讨论】:

  • 这是我上面提到的,你已经把它做成了接口驱动的。很好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
相关资源
最近更新 更多