Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何保存复选框的状态_C#_Windows 8_Microsoft Metro_Windows Store Apps_Checkbox - Fatal编程技术网

C# 如何保存复选框的状态

C# 如何保存复选框的状态,c#,windows-8,microsoft-metro,windows-store-apps,checkbox,C#,Windows 8,Microsoft Metro,Windows Store Apps,Checkbox,如何使用C#保存Visual studio ultimate 2012中复选框的状态。即使在应用程序终止后,当我再次打开时,上次查看的状态应该是可见的?怎么办?你能帮我查一下密码吗 提前谢谢 J.Visali在这里,您可以找到所需的一切:您可以使用应用程序提供的本地存储: Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; l

如何使用C#保存Visual studio ultimate 2012中复选框的状态。即使在应用程序终止后,当我再次打开时,上次查看的状态应该是可见的?怎么办?你能帮我查一下密码吗

提前谢谢


J.Visali

在这里,您可以找到所需的一切:

您可以使用应用程序提供的本地存储:

Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
localSettings.Values["CheckboxState"] = "checked";

然后,通过从值中提取状态,您可以使用相同的
localSettings
进行恢复。

对于大多数Windows 8应用商店应用程序,数据大体可分为两类:

  • 应用程序数据–设置、文件、缓存、会话状态、自定义列表等
  • 用户数据–文档、凭证、照片、音乐等
  • 本文将帮助您了解您需要什么类型的持久性。 数据可以作为键值对中的应用程序设置进行持久化,但也可以保存为应用程序文件,该文件通常存储在应用程序具有的沙盒文件系统访问中

    作为一个简单的例子,您应该:

       // Reference to Local Application Settings.
       Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 
       // Reference to Roaming Application Settings.
       Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings;  
       // Persisting simple Application Settings.
       localSettings.Values["myOption1"] = myBox1.isChecked;
       roamingSettings.Values["myOption2"] = myBox2.isChecked;
    
       // Reading settings back.
       var mySavedOption1 = (bool)(localSettings.Values["myOption1"]);
       var mySavedOption2 = (bool)(roamingSettings.Values["myOption2"]);
    
    编辑

    已测试的工作示例:

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
    
            // Reference to Local Application Settings.
            Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            // Reading settings back.
            object mySavedOption1;
            localSettings.Values.TryGetValue("myOption1Key", out mySavedOption1);
            if (mySavedOption1 != null)
                myOption1.IsChecked = (bool)mySavedOption1;
        }
    
        private void myOption1_Checked_1(object sender, RoutedEventArgs e)
        {
            // Reference to Local Application Settings.
            Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            // Persisting simple Application Settings.
            localSettings.Values["myOption1Key"] = myOption1.IsChecked;
    
        }
    

    在xaml中:
    应用程序设置是存储应用程序数据的最佳方式。。。解决问题的最佳方案

    你是指wpf应用程序中的复选框还是其他什么?@Despertar-问题标题是windows 8 metro应用程序中的windows 8 metro应用程序复选框工作正常。。。。。你能帮我恢复这个状态吗?非常感谢。。。。。但是它对我不起作用……(你能不能再细化一下………非常感谢你@ana 01这一个对我来说真的很好……:)非常感谢……。这只对一个复选框起作用,但这不会保存多个复选框。。。。。如何保存多个复选框的状态。。。。。提前感谢……您有多少个复选框?他们有关系吗?如果没有,也许将它们存储在不同的键下会有所帮助,比如:键“myCheck1Key”、“myCheck2Key”。或者可能是一个字典存储在一个特定的键上,比如“allMyOptionsKey”,里面有你需要的所有选项,尽管我不确定它是否有多大帮助。但是,如果选择具有多个键,则应该具有多个选中/未选中的处理程序,或者一个正确标识事件源并找到适当键的处理程序。如果你所有的钥匙都只用一把钥匙,那就错了。对不起,恐怕我帮不了你。您可以回答另一个问题,并标记此问题的适当答案。