0

У меня есть страница настроек, которая сохранит значение от пользователя для дальнейшего использования. Если пользователь установил это значение, это значение будет использоваться на главной странице. На первой странице сначала проверьте, установлен ли пользователь или изменил предыдущее сохраненное значение или нет. Если он изменен, он использует текущее значение, иначе он будет использовать предыдущее установленное значение. Я использовал Application.Current.Resources. Но я обнаружил, что если мое приложение снова перезапустится, значение будет потеряно. Что мне нужно, так это то, что на странице настроек значение с именем noOfWordsForLearning (например) будет сохранено, чтобы в любое время к нему можно было получить доступ с любой страницы. Если значение изменено в любое время, другая страница может получить измененное значение. Я так пробовал. В настройки страницы:динамически хранить и передавать данные в телефоне Windows

Application.Current.Resources.Add("savedNoOfWords",noOfWordsForLearning); 

В главной странице:

if (Application.Current.Resources.Contains("savedNoOfWords")) 
     { 
      getSavedValueFromSetting = (int)Application.Current.Resources["savedNoOfWords"]; 
      MessageBox.Show("no of saved words is " + getSavedValueFromSetting); 
     } 
     else 
      MessageBox.Show("no of default words is "+getSavedValueFromSetting); 

Как я могу это сделать ??

+0

Чтобы сохранить настройки при перезагрузке приложения, вам необходимо сохранить эти значения настроек в IsolStorage вместо Application.Current.Resources. – har07

+0

Я сохранил некоторое значение в изолированном хранилище для другой цели. Могу ли я хранить новое другое значение в изолированном хранилище? и как я могу получить доступ к изолированному значению хранилища с другой страницы ??? @ har07 – DarkenShooter

+1

да, вы можете, до тех пор, пока эти значения заданы разными ключами/именем, конечно. IsolatedStorage доступен с любой страницы ваших приложений. – har07

ответ

0

Я не знаю, есть ли какие-либо проблемы производительности или другая проблема, но если вы хотите, чтобы избежать чтений & письма к IsolatedStorage слишком часто, это то, что я буду делать:

//In App.xaml.cs 
//Point no 1 
private void Application_Launching(object sender, LaunchingEventArgs e) 
{ 
    object noOfWordsForLearning; 
    IsolatedStorageSettings.ApplicationSettings.TryGetValue("savedNoOfWords", out noOfWordsForLearning); 
    if (noOfWordsForLearning != null) 
    { 
     Application.Current.Resources["savedNoOfWords"] = noOfWordsForLearning; 
    } 
} 

//Point no 2 
private void Application_Closing(object sender, ClosingEventArgs e) 
{ 
    IsolatedStorageSettings.ApplicationSettings["savedNoOfWords"] = noOfWordsForLearning; 
} 
  1. значение нагрузки от IsoStorage к Application.Current.Resources при запуске приложения
  2. Сохранение значений настроек из Application.Current.Resources в IsoStorage перед закрытием приложения
  3. Во время запуска приложения только настройки чтения и записи в Ap plication.Current.Resources

Еще одно преимущество для вас, следующего за этими шагами: ваши существующие коды (которые только читают и сохраняют в Application.Current.Resources) остаются неизменными. Вам просто нужно добавить коды, чтобы сделать точку 1 & 2. Надеюсь, эта помощь, приветствия.