WPF应用程序设置 - 重置单个属性

nik*_*ita 11 c# wpf settings.settings

有一种方法可以重置应用程序设置 Settings.Default.Reset()

有没有办法只重置一个属性?就像是

Settings.Default.Properties["MyPropertyName"].Reset();
Run Code Online (Sandbox Code Playgroud)

Smi*_*Smi 13

您可以使用它Settings.Default.Properties["MyProperty"].DefaultValue来获取属性的默认值,并将属性值设置为该值.


小智 6

这是PropertyValue需要在Deserialized(订单问题)的组合中设置的:

public void ResetOneSetting(string propertyName)
{
    SettingsPropertyValue propertyToReset = Settings.Default.PropertyValues.OfType<SettingsPropertyValue>().FirstOrDefault(p => p.Name == propertyName);
    if (propertyToReset != null)
    {
        propertyToReset.PropertyValue = propertyToReset.Property.DefaultValue;
        propertyToReset.Deserialized = false;
    }
}
Run Code Online (Sandbox Code Playgroud)


nik*_*ita 5

读取.NET源代码时找到了解决方案:

Settings.Default.PropertyValues["MyPropertyName"].SerializedValue = Settings.Default.Properties["MyPropertyName"].DefaultValue;
Settings.Default.PropertyValues["MyPropertyName"].Deserialized = false;
Run Code Online (Sandbox Code Playgroud)