Settings.settings中的自定义类仅在以前访问属性时保存

时间:2014-09-11 08:23:29

标签: c# .net wpf settings.settings

我使用标准.NET settings(通过设置设计器)来存储我的设置。

我有自定义类将某些设置组合成类似

的内容
public CustomSetting : INotifyPropertyChanged
{
    public int? SelectionID
    {
        get { return _selectionID; }
        set
        {
            _selectionID = value;
            RaisePropertyChanged("SelectionID")
        }
    }
    private int? _selectionID;

    ...
}

然后我在设置设计器中添加了一个名为CustomSetting1的设置。

并使用此

扩展了部分设置类
public partial class Settings
{
    private Settings()
    {
        // make sure the setting is initialized on first startup
        if (CustomSetting1 == null)
        {
            CustomSetting1 = new CustomSetting();
            Save();
        }            

        CustomSetting1.PropertyChanged += (sender, args) => 
            {
                Save();
            };
    }
}

此设置与ComboBox绑定,会更改其值,当我进行更改时调用PropertyChanged事件,Save()无任何异常地工作。但是当我查看配置文件时,设置没有改变(但是“修改日期'已经更新”。

但现在出现了奇怪的部分,当我使用调试器查看设置,或者在调用Console.WriteLine(CustomSetting1.SelectionID)函数之前使用Save()进行打印时,它会神奇地工作。

我该怎么办这个问题?在调用Console.WriteLine函数之前,每个属性都需要Save() ...

0 个答案:

没有答案