复选框未保存状态
本文关键字:状态 保存 复选框 | 更新日期: 2023-09-27 18:11:10
我目前有一个复选框遵守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;
}
但它似乎不工作,我正在寻求一些帮助,再一次。
我的方法是创建一个设置类,并将控件绑定到设置类中的属性。对于简单的程序,我使用这种方法,即使不是真正的"设置",但只是我需要保存的数据。在一些情况下,我的数据可能会被另一个页面更改,所以对于可能在原始页面上更改的数据(在这种情况下,NotifyChanged事件不会触发,因为页面不在范围内),我有后面的代码返回并检查保存的数据。
下面是一个类似于我使用的设置类的例子: http://msdn.microsoft.com/en-us/library/ff769510%28v=VS.92%29.aspx我真的不明白这个问题。但是如果你这样做,
settings.Save();
则保存设置。如果你再次浏览那部分,就把它加载回来。请勿尝试更改复选框的isChecked功能。
或者您可以尝试将复选框的isChecked绑定到一个局部布尔变量。然后将其保存在数据库中。如果你再次加载它,你可以尝试在加载前或加载时添加这个。
cbLocationAllow.IsChecked = settings["allowLocation"];
尝试使用Mat lacey的Tombstone助手,它使保存所有Silverlight页面的状态非常容易,实际上在大多数情况下,每个页面只需两行代码即可完成。
WP7墓碑助手