예제 #1
0
        /// <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);
        }
예제 #3
0
        /// <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;
        }