gpt4 book ai didi

c# - 将复选框状态保存到本地设置,windows 8

转载 作者:行者123 更新时间:2023-11-30 16:20:34 25 4
gpt4 key购买 nike

我目前正在尝试将复选框的状态(选中/未选中)保存到我的现代 UI 应用程序的 ApplicationData 的 LocalSettings。在过去的 6-7 个小时里,我一直在研究这个问题,尝试了很多不同的方法,但我相信我现在已经完全迷失在自己的代码中了。到目前为止我的代码:

    void MainPage_Loaded(object sender, RoutedEventArgs e)
{
if (localSettings.Values.ContainsKey("isFirstChecked") == false || cbFirst.IsChecked == false)
{
cbFirst.IsChecked = false;
test.Text = "UnChecked";
}
else
{
cbFirst.IsChecked = true;
test.Text = "Checked";
}
}

private void cbFirst_Checked(object sender, RoutedEventArgs e)
{
test.Text = "Checked";
localSettings.Values["isFirstChecked"] = cbFirst.IsChecked = true;
}

private void cbFirst_Unchecked(object sender, RoutedEventArgs e)
{
test.Text = "UnChecked";
var test2 = localSettings.Values["isFirstChecked"] = cbFirst.IsChecked = false;

}

就像我已经说过的,我已经尝试了几种方法来解决这个问题,但是没有一种方法能够真正保存两种状态,只有一种(我希望你们中的一些人可能知道为什么,因为我我现在迷路了)。

出于某种原因,当我调试时,即使复选框未选中,“已选中”代码也会被触发。

最佳答案

您的初始代码的问题在于您正在检查您的条件中的不同内容。您正在检查您存储的设置是否存在,然后检查复选框是否被选中。您当前没有做的是获取设置值(如果存在)。在加载时尝试以下操作。

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
bool valueFromSettings = false;

if (!localSettings.Values.ContainsKey("isFirstChecked"))
{
// if the setting doesn't exist, probably wise to create it here.
// setting the default to "false", but you can change to true if that makes more sense.
localSettings.Values.Add("isFirstChecked", false);
}
else
{
// read the value of the setting here.
// If we just created it, it should default to false (see above)
valueFromSetting = ((bool)localSettings.Values["isFirstChecked"]);
}

if(valueFromSettings)
{
cbFirst.IsChecked = true;
test.Text = "Checked";
}
else
{
cbFirst.IsChecked = false;
test.Text = "UnChecked";
}
}

然后,您可以使用您之前定义的处理程序(但请注意细微的变化 - 您不需要检查复选框的值,但可以直接分配设置。)

private void cbFirst_Checked(object sender, RoutedEventArgs e)
{
test.Text = "Checked";
localSettings.Values["isFirstChecked"] = true;
}

private void cbFirst_Unchecked(object sender, RoutedEventArgs e)
{
test.Text = "UnChecked";
localSettings.Values["isFirstChecked"] = false;
}

关于c# - 将复选框状态保存到本地设置,windows 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14090410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com