public static Data.SettingParam GetSettingsParam(string srckey, Data.PropertyParam param) { IEnumerable <Data.SettingParam> settings; if (ViewModel.ViewModel.Instance.Settings.TryGetValue(srckey, out settings)) { var setting = (from p in settings where (param.Group == null) ? p.Key == param.Key : (p.Key == param.Key && p.Group == param.Group) select p).FirstOrDefault(); return(setting); } return(null); }
private static void SetPropertyValue(Data.SettingParam setting, Data.PropertyParam param, KeyValuePair <System.Reflection.PropertyInfo, object> propertyInfo) { if (setting.Value is IConvertible) { object value = Convert.ChangeType(setting.Value, param.Type); if (param.Type == typeof(int)) { object min = Convert.ChangeType(setting.Minimum, param.Type); if (Convert.ToDouble(value) < Convert.ToDouble(min)) { return; } } propertyInfo.Key.SetValue(propertyInfo.Value, value, null); } else { propertyInfo.Key.SetValue(propertyInfo.Value, setting.Value, null); } }