Флажок не сохраняет состояние - PullRequest
0 голосов
/ 14 октября 2011

В настоящее время у меня есть флажок для соблюдения правил служб определения местоположения MS, но, похоже, он не сохраняет свое состояние при повторном посещении страницы.

Код ниже:

private void cbLocationAllow_Checked(object sender, RoutedEventArgs e)
{
    var settings = IsolatedStorageSettings.ApplicationSettings;

    settings["allowLocation"] = true;
    settings.Save();

}

private void cbLocationAllow_Unchecked(object sender, RoutedEventArgs e)
{
    var settings = IsolatedStorageSettings.ApplicationSettings;

    settings["allowLocation"] = false;
    settings.Save();
}

Я думал, что это будет что-то вроде ..

   private void SaveState(CheckBox checkBox)
    {

        var settings = IsolatedStorageSettings.ApplicationSettings;

        if (settings.Contains("allowLocation"))
        {
            checkbox.isChecked == true;

        }

Но, похоже, это не сработает, и я снова обращаюсь за помощью.

Ответы [ 3 ]

1 голос
/ 15 октября 2011

То, как я это делаю, - это создание класса настроек и привязка элемента управления к свойству в классе настроек.Для простых программ я использую этот метод даже для вещей, которые на самом деле не являются «настройками», а просто данными, которые мне нужно сохранить.В нескольких случаях у меня есть данные, которые могут быть изменены другой страницей, поэтому для данных, которые могут быть изменены, но не на исходной странице (в этом случае событие NotifyChanged не срабатывает, поскольку страница не находится в области действия),У меня есть код, который возвращается и проверяет сохраненные данные.

Вот пример класса настроек, аналогичного тому, который я использую:

http://msdn.microsoft.com/en-us/library/ff769510%28v=VS.92%29.aspx

0 голосов
/ 14 октября 2011

Попробуйте использовать помощника Mat Laceys Tombstone, это позволяет очень легко сохранить состояние всех страниц Silverlight, фактически в большинстве случаев для каждой страницы требуется всего две строки кода.

WP7 Помощник надгробной плиты

0 голосов
/ 14 октября 2011

Я не совсем понимаю проблему. но если вы сделаете это,

 settings.Save();

затем сохраните настройки. Так что, если вы снова просматриваете эту часть, просто загрузите ее обратно. Не пытайтесь изменить функцию isChecked флажка.

или вы можете попытаться связать isChecked флажка с локальной логической переменной. затем сохраните это в своей базе данных. если вы загрузите его снова, попробуйте добавить его до или во время загрузки.

 cbLocationAllow.IsChecked = settings["allowLocation"];

Дайте мне знать, если вам нужно что-нибудь еще.

...