【问题标题】:Checkbox not saving state复选框未保存状态
【发布时间】:2011-10-14 08:38:54
【问题描述】:

我目前有一个复选框来遵守 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;

        }

但这似乎不起作用,我再次寻求帮助。

【问题讨论】:

  • checkbox.IsChecked == true;没有做很多.. double (==) 是比较而不是 setter
  • 嗨 Rhys,只是一个猜测,但如果设置存在,逻辑看起来有点缺陷。那么你想做这样的事情checkbox.isChecked = Convert.ToBoolean(settings["allowLocation"]);

标签: c# silverlight windows-phone-7 location


【解决方案1】:

我这样做的方式是创建一个设置类,并将控件绑定到设置类中的属性。对于简单的程序,即使不是真正的“设置”,我也会使用这种方法,而只是我需要保存的数据。在某些情况下,我的数据可能会被另一个页面更改,因此对于不在原始页面上可能更改的数据(在这种情况下,NotifyChanged 事件不会触发,因为该页面不在范围内),我有代码可以返回并检查保存的数据。

这是一个与我使用的设置类类似的示例:

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

【讨论】:

  • 谢谢。我最终只是更改为启用和禁用按钮,并使用 settings.save() 启用和 settings.remove("allowLocation") 禁用,它与我在主页上的 settings.contains("allowLocation") 工作正常。
【解决方案2】:

我真的不明白这个问题。但如果你这样做,

 settings.Save();

然后保存设置。因此,如果您再次浏览该部分,只需将其加载回来。请勿尝试更改复选框的 isChecked 功能。

或者您可以尝试将复选框的 isChecked 绑定到本地布尔变量。然后将其保存在您的数据库中。如果您再次加载它,您可以尝试在加载之前或加载时添加它。

 cbLocationAllow.IsChecked = settings["allowLocation"];

如果您还需要什么,请告诉我。

【讨论】:

  • 对不起,如果问题不清楚。保存到隔离存储的设置很好,但是当我回到复选框所在的设置时,该框又回到了未选中的原始状态。它需要保持选中状态并允许取消选中并从隔离存储中删除允许位置。 Hopefulyl 这使它更清楚一点。感谢您的帮助。
【解决方案3】:

尝试使用 Mat laceys Tombstone 助手,它使保存所有 Silverlight 页面的状态变得非常容易,实际上在大多数情况下,每页只需两行代码。

WP7 Tombstone helper

【讨论】:

  • 我相信他正在寻找一种永久存储状态的方法(IsolatedStorage)。 TomstoneHelper 是一个令人难以置信的工具,但不适用于这种情况。
猜你喜欢
  • 2012-04-18
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
相关资源
最近更新 更多