wpf SettingsProperty未按指定顺序保存,原因是什么?

ssgvzors  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(87)

在运行时,我保存属性,每个属性名称都有一个递增的前缀:

  • XXX_00_我的设置
  • XXX_01_MyOtherSetting
  • XXX_02_MyOtherOtherSetting

但是顺序应该与我应用于SettingsPropertyCollection权限的add函数的顺序相同?
但这并不是每次我在保存属性后打开user.config时的情况。它们已经以完全不同的顺序写入文件。
即使我这样做,它也不起作用(我发现here
Properties.Settings.Default.Properties.OfType<SettingsProperty>().OrderBy(s => s.Name);
这是我如何设置属性:

SettingsProperty setting = new SettingsProperty(settingName);
                        setting.PropertyType = typeof(double);
                        setting.DefaultValue = column.ActualWidth;
                        setting.IsReadOnly = false;
                        setting.Provider = Settings.Default.Providers["LocalFileSettingsProvider"]; ;
                        setting.Attributes.Add(typeof(System.Configuration.UserScopedSettingAttribute), new System.Configuration.UserScopedSettingAttribute());

这是我保存设置的方法

Settings.Default.Properties.Add(setting);
Settings.Default[setting.Name] = someValue; // Off topic: this is how it actualy get written into user.config only adding the property to properties doesnt do anything. Maybe because this is how it get recognized as overwritten default value

我期望它被写入指定的user.config

  • XXX_00_我的设置
  • XXX_01_MyOtherSetting
  • XXX_02_MyOtherOtherSetting

不像

  • XXX_02_MyOtherOtherSetting
  • XXX_00_我的设置
  • XXX_01_MyOtherSetting
isr3a4wc

isr3a4wc1#

正如Ralf和我在评论中提到的那样,由于使用了哈希表,因此不可能对SettingsPropertyCollection的顺序进行排序。
谢谢你们的回复。

相关问题