我使用标准.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()
...