【问题标题】:Why is my app setting not being retained?为什么我的应用设置没有保留?
【发布时间】:2014-12-05 22:02:03
【问题描述】:

我正在尝试以这种方式保存一个简单的应用设置(“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。为什么?我必须怎么做才能让值被保存和恢复?

【问题讨论】:

    标签: c# wpf appsettings


    【解决方案1】:

    我在任何地方都没有看到对 AppSettings.Default.Save() 的呼叫。

    否则,您对设置所做的更改将不会被保存。

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

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

    【讨论】:

      猜你喜欢
      • 2019-10-15
      • 2013-05-22
      • 2018-08-23
      • 2015-12-05
      • 1970-01-01
      • 2011-02-14
      • 2011-10-21
      相关资源
      最近更新 更多