Windows Phone-如何首次设置LocalSettings?

Fka*_*Fka 5 c# windows-phone-8

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

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

如何第一次设置这些设置(这意味着在第一次应用程序运行时,所以我以后只能读取它们,有时会更新现有值)?当然,每当我运行应用程序时,我都可以设置设置,但这是浪费时间.如何在第一次在应用程序中设置LocalSettings?我看到了这个解决方案WP7中是否有"首次运行"标志,但我不这么认为,这是唯一的可能性.

Eld*_*dho 12

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");
Run Code Online (Sandbox Code Playgroud)

Msdn参考

持久的数据


Fka*_*Fka 5

我写了代码:

    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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

在 App.xaml.cs 文件中:

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

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

        if (storageService.IsFirstRun())
        {
            storageService.Initialize();
        }
    }
Run Code Online (Sandbox Code Playgroud)

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