Example #1
0
        /// <summary>
        /// Gets the cell template.
        /// </summary>
        /// <param name="column">The column.</param>
        /// <param name="converterInfo">The converter information.</param>
        /// <param name="gridType">Type of the grid.</param>
        /// <returns>DataTemplate.</returns>
        public static DataTemplate GetCellTemplate(IColumnItem column, ConverterInfo converterInfo, GridType gridType)
        {
            if (column == null)
                return null;

            var highlightBehavior = GetHightlightBehavior(column.ColumnName, gridType);

            var prop = column.Property;
            var stringFormat = GetStringFormat(prop);
            var backcolorBinding = GetBackgroundColor(prop);

            var converter = converterInfo != null ? converterInfo.ConverterString : string.Empty;

            var binding =
                string.Format(CultureInfo.InvariantCulture, GetPropertyBinding(gridType),
                              column.FullName,
                              string.IsNullOrWhiteSpace(column.Prefix) ? string.Empty : string.Format(CultureInfo.InvariantCulture, "{0}.", column.Prefix),
                              string.IsNullOrWhiteSpace(converter) ? string.Empty : string.Format(CultureInfo.InvariantCulture, ", {0}", converter),
                              string.IsNullOrWhiteSpace(stringFormat) ? string.Empty : string.Format(CultureInfo.InvariantCulture, ", {0}", stringFormat));

            var behavior = string.Format(CultureInfo.InvariantCulture, highlightBehavior, binding);

            var templateText = BuildDataTemplate(gridType, behavior, backcolorBinding);
            
            var itemTemplate = XamlReader.Load(templateText);
            return (DataTemplate)itemTemplate;
        }
Example #2
0
        public GridViewDataColumn CreateDataColumn(IColumnItem column, ConverterInfo converterInfo)
        {
            if (column == null) throw new ArgumentNullException("column");
            if (converterInfo == null) throw new ArgumentNullException("converterInfo");
            
            if (column.IsSelectColumn)
                return null;

            if (column.IsBase && column.ColumnName == Constants.IdColumnName && column.Property.PropertyType == typeof(int))
            {
                return null;
            }

            if (column.IsBase && column.ColumnName == Constants.VersionDate)
            {
                return null;
            }

            if (column.IsBase && column.ColumnName == Constants.VersionNumber)
            {
                return null;
            }

            if (column.IsBase && Constants.DerivedProcessDisplayNameColumnName.Equals(column.ColumnName))
            {
                return null;
            }

            GridType gridType;
            if (!Enum.TryParse((string)_grid.Tag, out gridType))
            {
                gridType = GridType.None;
            }

            var bindingPath = column.FullName;

            return new GridViewDataColumn
            {
                Header = column.Header,
                UniqueName = column.FullName,
                DataMemberBinding = new Binding(bindingPath)
                {
                    Converter = converterInfo.ConverterObject,
                    ConverterParameter = converterInfo.ConverterParameter
                },
                CellTemplate = CellTemplateCreator.GetCellTemplate(column, converterInfo, gridType),
                GroupFooterCellStyle = (Style)_dictionary["GroupFooterCellStyle"],
                GroupHeaderFormatString = GetGroupFormatString(column, converterInfo),
                FooterCellStyle = (Style)_dictionary["FooterCellStyle"],
                DataType = column.Property.PropertyType,
                IsGroupable = true,
                Width =
                    Math.Abs(column.Width) < double.Epsilon
                        ? new GridViewLength(1, GridViewLengthUnitType.Auto)
                        : column.Width,
                HeaderCellStyle = _dictionary != null ? (Style)_dictionary["GridViewHeaderCellStyle"] : new Style()
            };
        }
Example #3
0
        /// <summary>Gets the group format string.</summary>
        /// <param name="column">column</param>
        /// <param name="converterInfo">The converter information.</param>
        private static string GetGroupFormatString(IColumnItem column, ConverterInfo converterInfo)
        {
            if (converterInfo.ConverterObject is NumberToPercentConverter)
            {
                var numericAttribute = (NumericAttribute)(from d in column.Property.GetCustomAttributes(typeof(NumericAttribute), false) select d).FirstOrDefault();
                if (numericAttribute != null)
                    return string.Format(CultureInfo.InvariantCulture, "{{0:P{0}}}", numericAttribute.NumberOfDigits);
            }
            else if (column.Property != null && column.Property.PropertyType == typeof(DateTime?))
            {
                switch (ReferenceFieldsHelper.GetDateTimeFormatEnum(column.Property))
                {
                    case DateTimeFormat.Date:
                        return "{0:d}";
                    case DateTimeFormat.Time:
                        return "{0:t}";
                    default:
                        return "{0:g}";
                }
            }

            return string.Empty;
        }