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