C# 设置中的自定义类。只有在之前访问属性时,才会保存设置
我正在使用标准(通过设置设计器)存储我的设置 我有一个自定义类,可以将一些设置组合成C# 设置中的自定义类。只有在之前访问属性时,才会保存设置,c#,.net,wpf,settings.settings,C#,.net,Wpf,Settings.settings,我正在使用标准(通过设置设计器)存储我的设置 我有一个自定义类,可以将一些设置组合成 public CustomSetting : INotifyPropertyChanged { public int? SelectionID { get { return _selectionID; } set { _selectionID = value; RaisePropertyChanged
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();
};
}
}
此设置绑定到将更改其值的组合框
,在我进行更改时调用属性更改
事件,并且Save()
可以正常工作。但是当我查看配置文件时,设置没有改变(但是“修改日期”已经更新)
但现在出现了奇怪的部分,当我使用调试器查看设置,或者在调用Save()
函数之前使用Console.WriteLine(CustomSetting1.SelectionID)
打印它时,它会神奇地工作
关于这个问题,我能做些什么?在调用
Save()
函数之前,除了Console.WriteLine
之外,在每个属性上都执行此操作…您在哪里查看设置文件?你能提供目录路径吗?只是microsoft.NET设置使用的默认路径,我不能影响这个。C:\Users\\AppData\Local\\\\uuser.config