c# windows-8 microsoft-metro windows-store-apps checkbox

c# - Cómo guardar el estado de una casilla de verificación



windows-8 microsoft-metro (4)

Aquí debe encontrar todo lo que necesita: http://msdn.microsoft.com/en-us/library/windows/apps/hh986968.aspx

Cómo guardar el estado de una casilla de verificación en Visual Studio ultimate 2012 usando C #. Es decir, incluso después de que la aplicación se termine cuando vuelva a abrir, ¿el último estado visto debería estar visible? ¿qué hacer? ¿Podrías ayudarme con el código?

Gracias por adelantado.....

J. Visali


Para la mayoría de las aplicaciones de Windows 8 Store, los datos se pueden clasificar en gran medida en dos categorías:

  1. Datos de la aplicación: configuraciones, archivos, caché, estado de la sesión, listas personalizadas, etc.
  2. Datos de usuario: documentos, credenciales, fotos, música, etc.

Este artículo Data Persistence & Application Life-Cycle Management debería ayudarlo a comprender qué tipo de persistencia necesita. Los datos pueden persistir, como Configuración de la aplicación en pares clave-valor, pero también se pueden guardar como Archivos de la aplicación , que generalmente se almacena en el acceso al sistema de archivos de espacio aislado que tienen las aplicaciones.

Como un ejemplo rápido, debes tener:

// Reference to Local Application Settings. Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; // Reference to Roaming Application Settings. Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings; // Persisting simple Application Settings. localSettings.Values["myOption1"] = myBox1.isChecked; roamingSettings.Values["myOption2"] = myBox2.isChecked; // Reading settings back. var mySavedOption1 = (bool)(localSettings.Values["myOption1"]); var mySavedOption2 = (bool)(roamingSettings.Values["myOption2"]);

Editar

Ejemplo probado que funciona:

protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); // Reference to Local Application Settings. Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; // Reading settings back. object mySavedOption1; localSettings.Values.TryGetValue("myOption1Key", out mySavedOption1); if (mySavedOption1 != null) myOption1.IsChecked = (bool)mySavedOption1; } private void myOption1_Checked_1(object sender, RoutedEventArgs e) { // Reference to Local Application Settings. Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; // Persisting simple Application Settings. localSettings.Values["myOption1Key"] = myOption1.IsChecked; }

En xaml: <CheckBox x:Name="myOption1" Grid.Row="1" Checked="myOption1_Checked_1" Unchecked="myOption1_Checked_1"/>


Puede usar el almacenamiento local provisto por la aplicación:

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; localSettings.Values["CheckboxState"] = "checked";

Luego puede restaurar usando el mismo localSettings extrayendo el estado de los valores.