2014-09-30 2 views
0

В моих окнах телефона 8 приложения Я использую listpicker, которые имеют два значения Dark и Light, когда я выбираю Light от listpicker и перезагрузить приложение, listpicker значения т.е. Light теряются и имеет значение по умолчанию т.е. Dark.значения lictpicker теряются в КР8 C#

И ниже listpicker SelectionChanged метод:

private void themelistPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      string themename = string.Empty; 
      IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
      ListPickerItem lpi = (sender as ListPicker).SelectedItem as ListPickerItem; 
      themename = lpi.Content.ToString(); 
      value = lpi.Content.ToString(); 
      if (themename == "Dark") 
      { 
       if (!settings.Contains("userData")) 
       { 
        settings.Add("userData", themename); 
       } 
       else 
       { 
        settings["userData"] = themename; 
       } 
       settings.Save(); 
      } 
      else 
      { 

       if (!settings.Contains("userData")) 
       { 
        settings.Add("userData", themename); 
       } 
       else 
       { 
        settings["userData"] = themename; 
       } 
       settings.Save(); 
      } 
     } 

Что я могу сделать, Просьба предложить мне. Ждут ответа.

Благодаря

+0

сделал работу ответ или нет? –

ответ

1

попробовать это:

XAML:

 <toolkit:ListPicker x:Name="themelistPicker1" SelectionChanged="themelistPicker1_SelectionChanged"> 
      <toolkit:ListPickerItem Content="Light"></toolkit:ListPickerItem> 
      <toolkit:ListPickerItem Content="Dark"></toolkit:ListPickerItem> 
     </toolkit:ListPicker> 

CS:

protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
    if (settings.Contains("userData")) 
    { 
     string str = settings["userData"].ToString(); 
     if (str == "Dark") 
      themelistPicker1.SelectedIndex = 1; 
     else 
      themelistPicker1.SelectedIndex = 0; 
    } 
    base.OnNavigatedTo(e); 
} 
private void themelistPicker1_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (themelistPicker1 != null && themelistPicker1.SelectedIndex > -1) 
    { 
     IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; 
     ListPickerItem lpi = (sender as ListPicker).SelectedItem as ListPickerItem; 
     string themename = lpi.Content.ToString(); 
     if (!settings.Contains("userData")) 
      settings.Add("userData", themename); 
     else 
      settings["userData"] = themename; 
     settings.Save(); 
    } 
} 
+0

Да, ваш ответ работает нормально. – user88

0

Вы сохраняете выбранное значение из ListPicker не в состоянии контроля. Добавить код на Loaded или NavigateTo событий страницы, содержащей ListPicker и если свет присутствует в IsolatedStorageSettings, а затем изменить выбранный программно индекс ...

Если вы храните этот вид настроек в IsolatedStorage, вы можете просто добавить/удалить ключ без проверки значения, чтобы упростить его. Поэтому, когда пользователь выбирает Light, вы добавляете некоторый ключ в хранилище, когда темный вы его удаляете. Ключ присутствие, то значит, что свет выбран :)