void CacheValuesByProvider(SettingsProvider provider)
{
SettingsPropertyCollection col = new SettingsPropertyCollection();
foreach (SettingsProperty p in Properties)
{
if (p.Provider == provider)
{
col.Add(p);
}
}
if (col.Count > 0)
{
SettingsPropertyValueCollection vals = provider.GetPropertyValues(Context, col);
foreach (SettingsPropertyValue prop in vals)
{
if (PropertyValues [prop.Name] != null)
{
PropertyValues [prop.Name].PropertyValue = prop.PropertyValue;
}
else
{
PropertyValues.Add(prop);
}
}
}
OnSettingsLoaded(this, new SettingsLoadedEventArgs(provider));
}