为什么我的应用设置没有被保留?

时间:2014-12-05 22:02:03

标签: c# wpf appsettings

我正在尝试以这种方式保存简单的应用设置(“LanguagePairId”):

if (rdbtnEnglishPersian.IsChecked == true) // because "IsChecked" is a nullable bool, the "== true" is necessary
{
    langPairId = 1;
}
else if (rdbtnEnglishGerman.IsChecked == true)
{
    langPairId = 2;
}
else if (rdbtnEnglishSpanish.IsChecked == true)
{
    langPairId = 3;
}
else if (rdbtnGermanSpanish.IsChecked == true)
{
    langPairId = 4;
}
else if (rdbtnGermanPersian.IsChecked == true)
{
    langPairId = 5;
}
else if (rdbtnSpanishPersian.IsChecked == true)
{
    langPairId = 6;
}
AppSettings.Default.LanguagePairId = langPairId;

为LanguagePairId分配预期值(如果选中rdbtnEnglishSpanish,则分配3等)

但是尝试在应用启动时阅读应用设置值:

int langPairId;
public MainWindow()
{
    InitializeComponent();
    RecheckTheLastSelectedRadBtn();
}

private void RecheckTheLastSelectedRadBtn()
{
    langPairId = AppSettings.Default.LanguagePairId;
    switch (langPairId)
    {
        case 1:
            rdbtnEnglishPersian.IsChecked = true;
            break;
            . . .

...失败 - AppSettings.Default.LanguagePairId在恢复应用时被视为0。为什么?我该怎么做才能保存和恢复值?

1 个答案:

答案 0 :(得分:5)

我无法在任何地方看到AppSettings.Default.Save()的电话。

如果不这样做,您对设置的更改将无法保存。

设置属性后,请立即尝试添加。 E.g:

AppSettings.Default.LanguagePairId = langPairId;
AppSettings.Default.Save();