2014-11-07 19 views
5

W projektach aplikacji komputerowych lub projektów sieci Web były pliki App.configs i Web.configs do przechowywania ustawień. Ustawienia te zostały ustawione w czasie programowania (lub kiedykolwiek później), ale jeśli tak się stanie, ZAWSZE było raz po akcji.Windows Phone - Jak ustawić LocalSettings po raz pierwszy?

W systemie Windows Phone 8.1 XAML nie ma pliku App.config, więc programiści mogą używać Windows.Storage.ApplicationData.Current.LocalSettings. Miły.

W jaki sposób ustawić te ustawienia? po raz pierwszy (oznacza to, że przy pierwszym uruchomieniu aplikacji zawsze mogę je później odczytać, a czasami aktualizować istniejące wartości)? Oczywiście mogę ustawić ustawienia za każdym razem, gdy uruchomię aplikację, ale to jest czas marnowania czasu. Jak ustawić ustawienia LocalSettings w swoich aplikacjach po raz pierwszy? Widziałem to rozwiązanie Is there a "first run" flag in WP7, ale nie sądzę, że jest to jedyna możliwość. Kod

+0

Może pomóc [This] (http://msdn.microsoft.com/library/windows/apps/windows.storage.applicationdata.localsettings.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet -2) – Eldho

Odpowiedz

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

Nie chodzi o ** jak ** zapisać, przeczytać, zaktualizować ustawienia. To wszystko o inicjalizacji ** pierwszych ** ustawień. – Fka

+1

Zostałem użyty IsolatedStorageSetting, aby zapisać pierwszą flagę run, zanim pojawi się wp 8.1. Myślę, że u cud statycznie ustawione localseettings.Values ​​["FirstRun"] = false i kiedy ustawione to prawda dla firsttime i play Wprowadzenie rzeczy i po kiedy aplikacja otworzy się to będzie "Prawda", więc mamy cud dostać jego nie pierwszy raz. Pls poprawne, jeśli się mylę – Eldho

+0

To nie jest najgorszy pomysł, ale dodatkowo wymaga zdefiniowania wszystkich ustawień w złożeniu (ale jest to kolejna rzecz). Dziękuję za udzielenie pomysłu. – Fka

4

Pisałem:

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

W pliku App.xaml.cs:

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

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

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

nie jestem s jest to właściwy sposób na ustawienie ustawień po raz pierwszy, ale jest to pewna dusza.

+0

to jest wat, że mam wspomnieć powyżej, U sprawili, że interfejs napędzany. – Eldho

Powiązane problemy