Hi Vladislav,
in my case it didn't work.
It cames up with:
CodeSystem.InvalidCastException
Message=Invalid cast from 'Int32' to 'DateTime'.
Source=System.Private.CoreLib
But after some investigations i found my own fault - even if the error did not occur with the FW-Version.
That's what i found aka what i'am doing wrong. I need to add columns dynamically to the grid. I need to set the format
BUT i also try to hide (make them invisible) numeric values when they containing value is 0 (zero).
BUT that's wrong and causes the exeption, when the format is a Date.
C#if (!string.IsNullOrEmpty(format))
{
// did not work when the field is a date!!
**FormatConditionRuleValue markRule = new FormatConditionRuleValue();
markRule.Condition = FormatCondition.Equal;
markRule.Value1 = 0;
markRule.Appearance.ForeColor = Color.Transparent;
Grid.FormatRules.Add(Grid.Columns[colName], markRule);**
switch (format)
{
case "d":
Grid.Columns[colName].DisplayFormat.FormatType = FormatType.DateTime;
markRule = new FormatConditionRuleValue();
markRule.Condition = FormatCondition.Equal;
markRule.Value1 = DateTime.MinValue;
markRule.Appearance.BackColor = Color.Transparent;
markRule.Appearance.ForeColor = Color.Transparent;
Grid.FormatRules.Add(Grid.Columns[colName], markRule);
break;
case "{0.0##0}":
Grid.Columns[colName].DisplayFormat.FormatType = FormatType.Numeric;
Grid.Columns[colName].DisplayFormat.FormatString = "0.0##0";
break;
case "{#,##0}":
Grid.Columns[colName].DisplayFormat.FormatType = FormatType.Numeric;
Grid.Columns[colName].DisplayFormat.FormatString = "#,##0";
Grid.Columns[colName].SummaryItem.Assign(new GridSummaryItem(SummaryItemType.Sum, colName, "{#,##0}"));
Grid.Columns[colName].AllowSummaryMenu = true;
break;
case "C2":
Grid.Columns[colName].DisplayFormat.FormatType = FormatType.Numeric;
Grid.Columns[colName].DisplayFormat.FormatString = "C2";
Grid.Columns[colName].SummaryItem.Assign(new GridSummaryItem(SummaryItemType.Sum, colName, "{0:C2}"));
Grid.Columns[colName].AllowSummaryMenu = true;
break;
default:
Grid.Columns[colName].DisplayFormat.FormatString = format;
break;
}