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

B. *_*non 0 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;
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

Pet*_*iho 5

我没有看到AppSettings.Default.Save()任何地方的电话.

没有它,您将无法保存对设置的更改.

设置属性后立即尝试添加它.例如:

AppSettings.Default.LanguagePairId = langPairId;
AppSettings.Default.Save();
Run Code Online (Sandbox Code Playgroud)