public override SettingsPropertyValueCollection GetPropertyValues (SettingsContext context, SettingsPropertyCollection collection)
{
CreateExeMap ();
if (values == null) {
values = new SettingsPropertyValueCollection ();
string groupName = context ["GroupName"] as string;
LoadProperties (exeMapCurrent, collection, ConfigurationUserLevel.None, "applicationSettings", false, groupName);
LoadProperties (exeMapCurrent, collection, ConfigurationUserLevel.None, "userSettings", false, groupName);
LoadProperties (exeMapCurrent, collection, ConfigurationUserLevel.PerUserRoaming, "userSettings", true, groupName);
LoadProperties (exeMapCurrent, collection, ConfigurationUserLevel.PerUserRoamingAndLocal, "userSettings", true, groupName);
// create default values if not exist
foreach (SettingsProperty p in collection)
if (values [p.Name] == null)
values.Add (new SettingsPropertyValue (p));
}
return values;
}