/// <summary> /// Returns the type of column that is appropriate for the given property of the data source. /// Numbers, DateTime, Color and Boolean columns are mapped to NumberColumn, DateTimeColumn, ColorColumn and CheckBoxColumn respectively. The default /// is just a TextColumn. /// </summary> /// <param name="prop"></param> /// <param name="index"></param> /// <returns></returns> public virtual Column GetColumn(PropertyDescriptor prop, int index) { Column column; var propertyType = prop.PropertyType; switch (propertyType.Name) { case nameof(Int32): case nameof(Double): case nameof(Single): case nameof(Int16): case nameof(Int64): case nameof(Decimal): var fieldMin = propertyType.GetField("MinValue"); var fieldMax = propertyType.GetField("MaxValue"); column = new DoubleColumn(prop.Name) { Minimum = (double)fieldMin.GetValue(propertyType), Maximum = (double)fieldMax.GetValue(propertyType), }; break; case "DateTime": column = new DateTimeColumn(prop.Name); break; case "Color": column = new ColorColumn(prop.Name); break; case "Boolean": column = new CheckBoxColumn(prop.Name); break; default: column = new TextColumn(prop.Name); break; } return(column); }
/// <summary> /// Returns the type of column that is appropriate for the given property of the data source. /// Numbers, DateTime, Color and Boolean columns are mapped to NumberColumn, DateTimeColumn, ColorColumn and CheckBoxColumn respectively. The default /// is just a TextColumn. /// </summary> /// <param name="prop"></param> /// <param name="index"></param> /// <returns></returns> public virtual Column GetColumn(PropertyDescriptor prop, int index) { NumberColumn numCol = null; Column column = null; switch (prop.PropertyType.Name) { case "Int32": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int32.MaxValue; numCol.Minimum = Int32.MinValue; column = numCol; break; case "Double": numCol = new NumberColumn(prop.Name); numCol.Maximum = Decimal.MaxValue; numCol.Minimum = Decimal.MinValue; column = numCol; break; case "Float": numCol = new NumberColumn(prop.Name); numCol.Maximum = Convert.ToDecimal(float.MaxValue); numCol.Minimum = Convert.ToDecimal(float.MinValue); column = numCol; break; case "Int16": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int16.MaxValue; numCol.Minimum = Int16.MinValue; column = numCol; break; case "Int64": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int64.MaxValue; numCol.Minimum = Int64.MinValue; column = numCol; break; case "Decimal": numCol = new NumberColumn(prop.Name); numCol.Maximum = Decimal.MaxValue; numCol.Minimum = Decimal.MinValue; column = numCol; break; case "DateTime": column = new DateTimeColumn(prop.Name); break; case "Color": column = new ColorColumn(prop.Name); break; case "Boolean": column = new CheckBoxColumn(prop.Name); break; default: column = new TextColumn(prop.Name); break; } return(column); }
/// <summary> /// Returns the type of column that is appropriate for the given property of the data source. /// Numbers, DateTime, Color and Boolean columns are mapped to NumberColumn, DateTimeColumn, ColorColumn and CheckBoxColumn respectively. The default /// is just a TextColumn. /// </summary> /// <param name="prop"></param> /// <param name="index"></param> /// <returns></returns> public virtual Column GetColumn(PropertyDescriptor prop, int index) { NumberColumn numCol = null; Column column = null; switch (prop.PropertyType.Name) { case "Int32": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int32.MaxValue; numCol.Minimum = Int32.MinValue; column = numCol; break; case "Double": numCol = new NumberColumn(prop.Name); numCol.Maximum = Decimal.MaxValue; numCol.Minimum = Decimal.MinValue; column = numCol; break; case "Float": numCol = new NumberColumn(prop.Name); numCol.Maximum = Convert.ToDecimal(float.MaxValue); numCol.Minimum = Convert.ToDecimal(float.MinValue); column = numCol; break; case "Int16": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int16.MaxValue; numCol.Minimum = Int16.MinValue; column = numCol; break; case "Int64": numCol = new NumberColumn(prop.Name); numCol.Maximum = Int64.MaxValue; numCol.Minimum = Int64.MinValue; column = numCol; break; case "Decimal": numCol = new NumberColumn(prop.Name); numCol.Maximum = Decimal.MaxValue; numCol.Minimum = Decimal.MinValue; column = numCol; break; case "DateTime": column = new DateTimeColumn(prop.Name); break; case "Color": column = new ColorColumn(prop.Name); break; case "Boolean": column = new CheckBoxColumn(prop.Name); break; default: column = new TextColumn(prop.Name); break; } return column; }