2014-11-07 4 views
5

В проектах Desktop Application или Web Projects для хранения настроек были файлы App.configs и Web.configs. Эти настройки были установлены во время разработки (или когда-либо позже), но если это происходит, это было ВСЕГДА после действия.Windows Phone - Как установить LocalSettings в первый раз?

В Windows Phone 8.1 XAML нет файла App.config, поэтому разработчики могут использовать Windows.Storage.ApplicationData.Current.LocalSettings. Ницца.

Как установить эти настройки первый раз (это означает, что при первом запуске приложения всегда, поэтому я могу позже только читать их и иногда обновлять существующие значения)? Конечно, я могу устанавливать настройки всякий раз, когда запускаю приложение, но это время тратит время. Как вы устанавливаете LocalSettings в своих приложениях в первый раз? Я видел это решение Is there a "first run" flag in WP7, но я так не думаю, что это единственная возможность.

+0

Может помочь [This] (http://msdn.microsoft.com/library/windows/apps/windows.storage.applicationdata.localsettings.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet -2) – Eldho

ответ

11
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

+0

Это не о том, как ** сохранять, читать, обновлять настройки. Все об инициализации ** сначала ** настроек. – Fka

+1

Я был использован IsolStorageSetting, чтобы сохранить флаг запуска в первый раз, прежде чем появится wp 8.1. Я думаю, что u cud статически задает localseettings.Values ​​["FirstRun"] = false, и когда он установлен в true для первого раза и воспроизводит вводные вещи, и после того, как приложение откроется, это будет «True», поэтому мы cud получили его не первый раз. Pls правильно, если я ошибаюсь – Eldho

+0

Это не худшая идея, но в дальнейшем она требует определения всех настроек в сборке (но это другое дело). Благодарим за идею. – Fka

4

Я написал код:

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(); 
     } 
    } 

Я не s Это правильный способ установить настройки в первый раз, но это какая-то душа.

+0

Это, как я упомянул выше, U сделал его интерфейс управляемым .Nice – Eldho

Смежные вопросы