public bool SetValueFromString(object item, string val) { object value = null; try { switch (Type) { case DisplayValueType.DecimalList: value = val.Split(' ').Select(s => decimal.Parse(s)).ToList(); break; case DisplayValueType.Decimal: value = decimal.Parse(val); break; case DisplayValueType.PickList: case DisplayValueType.PickList_Multi: value = Enum.Parse(SrcProperty.PropertyType, val); break; default: value = val; break; } //If we have a value, set it SrcProperty.SetValue(item, value); return(true); } catch { return(false); } //conversion unsuccessful }
public string GetValueAsString(object src) { object value = null; value = SrcProperty.GetValue(src); switch (Type) { case DisplayValueType.DecimalList: return(string.Join(" ", ((List <decimal>)value).Select(d => string.Format("{0:N}", d)))); case DisplayValueType.Decimal: return(string.Format("{0:N}", value)); case DisplayValueType.PickList_Multi: default: return(value?.ToString()); } }
public T GetValue <T>(object src) => SrcProperty.GetValue <T>(src);
public int GetMaxIndex(object obj) => Type == DisplayValueType.DecimalList ? (((SrcProperty.GetValue <List <decimal> >(obj)))?.Count() ?? 0) - 1 : 0;