C# 强制在WPF应用程序中写入所有用户设置

C# 强制在WPF应用程序中写入所有用户设置,c#,wpf,settings,propertychanged,C#,Wpf,Settings,Propertychanged,我有一个用户设置对象,其中包含可观察的集合。我的问题是保存设置只保存一次。我猜setting对象不会通过集合获得任何更改事件。我试图通过集合更改事件修复此问题,但在这种情况下,我的处理程序始终为null 我的问题是:我可以强制Save方法写入所有数据吗?或者,有没有一种方法可以自己(而不是通过框架)实例化Propertychanged事件处理程序 感谢您的帮助设置是一个分部类,因此您可以创建另一个分部并将保存逻辑放在那里。差不多 public partial class MySettings {

我有一个用户设置对象,其中包含可观察的集合。我的问题是保存设置只保存一次。我猜setting对象不会通过集合获得任何更改事件。我试图通过集合更改事件修复此问题,但在这种情况下,我的处理程序始终为null

我的问题是:我可以强制Save方法写入所有数据吗?或者,有没有一种方法可以自己(而不是通过框架)实例化Propertychanged事件处理程序


感谢您的帮助

设置是一个分部类,因此您可以创建另一个分部并将保存逻辑放在那里。差不多

public partial class MySettings
{
    protected override void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
            Save();
        base.OnPropertyChanged(sender, e);
    }
}

ObservableCollection在计数发生变化时触发PropertyChanged事件,因此这对于从ObservableCollection中添加和删除也应该有效。

我认为设置中的ObservableCollection不是您应该做的事情。更多的代码会更好,我以后会遵循这个提示,但是我不能再更改我的设置了,因为这是一个正在运行的系统。谢谢你的时间。问题是没有调用onpropertychanged。我通过将属性重新分配给Setrtings.Default.Setting1=Setrtings.Default.Setting1等设置来“解决”这个问题;很遗憾听到这个消息。我对我的WPF应用程序使用了相同的方法,它工作得很好,尽管我在设置中没有使用可观察的集合。它适用于简单属性吗?可能settings.designer.cs中的名称空间与您的部分应用程序中的名称空间不匹配。