And just so you have a full example, I've included a complete test form below:
public
class DateConversion : Form
{
private Infragistics.Win.UltraWinGrid.UltraGrid _grid;
private Infragistics.Win.UltraWinEditors.UltraDateTimeEditor ultraDateTimeEditor1;private UltraGrid _comparisonGrid;private DataTable _data;
public DateConversion()
{
InitializeComponent();
const string COLUMN_NAME = "DateAsString";
_data =
new DataTable();_data.Columns.Add(COLUMN_NAME, typeof(string));
Random rnd = new Random(Environment.TickCount);for (int i = 0; i < 10; i++)
{
DateTime date = new DateTime(2008, 1, 1).AddDays(rnd.Next(365));_data.Rows.Add(string.Format("{0:yyyyMMdd}", date));
}
_grid.DataSource = _data;
_comparisonGrid.DataSource = _data;
_grid.DisplayLayout.Bands[0].Columns[COLUMN_NAME].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DateTime;_grid.DisplayLayout.Bands[0].Columns[COLUMN_NAME].Editor.DataFilter = new DateEditorDataFilter();
}
private void InitializeComponent()
{
Infragistics.Win.
Appearance appearance1 = new Infragistics.Win.Appearance();Infragistics.Win.UltraWinGrid.UltraGridBand ultraGridBand1 = new Infragistics.Win.UltraWinGrid.UltraGridBand("Band 0", -1);
Infragistics.Win.UltraWinGrid.
UltraGridColumn ultraGridColumn1 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("DateAsString");Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance3 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance5 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance7 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance9 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance11 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance13 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance14 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance15 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance16 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance17 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance18 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance19 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance20 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance21 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance22 = new Infragistics.Win.Appearance();
Infragistics.Win.
Appearance appearance23 = new Infragistics.Win.Appearance();Infragistics.Win.Appearance appearance24 = new Infragistics.Win.Appearance();
this._grid = new Infragistics.Win.UltraWinGrid.UltraGrid();this.ultraDateTimeEditor1 = new Infragistics.Win.UltraWinEditors.UltraDateTimeEditor();
this._comparisonGrid = new Infragistics.Win.UltraWinGrid.UltraGrid();((System.ComponentModel.ISupportInitialize)(this._grid)).BeginInit();
((System.ComponentModel.
ISupportInitialize)(this.ultraDateTimeEditor1)).BeginInit();((System.ComponentModel.ISupportInitialize)(this._comparisonGrid)).BeginInit();
this.SuspendLayout();
//
// _grid
// appearance1.BackColor = System.Drawing.SystemColors.Window;
appearance1.BorderColor = System.Drawing.
SystemColors.InactiveCaption;this._grid.DisplayLayout.Appearance = appearance1;
ultraGridColumn1.Header.VisiblePosition = 0;
ultraGridColumn1.Width = 160;
ultraGridBand1.Columns.AddRange(new object[ {
ultraGridColumn1});
this._grid.DisplayLayout.BandsSerializer.Add(ultraGridBand1);
this._grid.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;this._grid.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
appearance2.BackColor = System.Drawing.
SystemColors.ActiveBorder;appearance2.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance2.BackGradientStyle = Infragistics.Win.
GradientStyle.Vertical;appearance2.BorderColor = System.Drawing.SystemColors.Window;
this._grid.DisplayLayout.GroupByBox.Appearance = appearance2;appearance3.ForeColor = System.Drawing.SystemColors.GrayText;
this._grid.DisplayLayout.GroupByBox.BandLabelAppearance = appearance3;this._grid.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
appearance4.BackColor = System.Drawing.
SystemColors.ControlLightLight;appearance4.BackColor2 = System.Drawing.SystemColors.Control;
appearance4.BackGradientStyle = Infragistics.Win.
GradientStyle.Horizontal;appearance4.ForeColor = System.Drawing.SystemColors.GrayText;
this._grid.DisplayLayout.GroupByBox.PromptAppearance = appearance4;this._grid.DisplayLayout.MaxColScrollRegions = 1;
this._grid.DisplayLayout.MaxRowScrollRegions = 1;appearance5.BackColor = System.Drawing.SystemColors.Window;
appearance5.ForeColor = System.Drawing.
SystemColors.ControlText;this._grid.DisplayLayout.Override.ActiveCellAppearance = appearance5;
appearance6.BackColor = System.Drawing.
SystemColors.Highlight;appearance6.ForeColor = System.Drawing.SystemColors.HighlightText;
this._grid.DisplayLayout.Override.ActiveRowAppearance = appearance6;this._grid.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
this._grid.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;appearance7.BackColor = System.Drawing.SystemColors.Window;
this._grid.DisplayLayout.Override.CardAreaAppearance = appearance7;appearance8.BorderColor = System.Drawing.Color.Silver;
appearance8.TextTrimming = Infragistics.Win.
TextTrimming.EllipsisCharacter;this._grid.DisplayLayout.Override.CellAppearance = appearance8;
this._grid.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;this._grid.DisplayLayout.Override.CellPadding = 0;
appearance9.BackColor = System.Drawing.
SystemColors.Control;appearance9.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance9.BackGradientAlignment = Infragistics.Win.
GradientAlignment.Element;appearance9.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
appearance9.BorderColor = System.Drawing.
SystemColors.Window;this._grid.DisplayLayout.Override.GroupByRowAppearance = appearance9;
appearance10.TextHAlignAsString =
"Left";this._grid.DisplayLayout.Override.HeaderAppearance = appearance10;
this._grid.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;this._grid.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
appearance11.BackColor = System.Drawing.
SystemColors.Window;appearance11.BorderColor = System.Drawing.Color.Silver;
this._grid.DisplayLayout.Override.RowAppearance = appearance11;this._grid.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
appearance12.BackColor = System.Drawing.
SystemColors.ControlLight;this._grid.DisplayLayout.Override.TemplateAddRowAppearance = appearance12;
this._grid.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;this._grid.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
this._grid.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;this._grid.Location = new System.Drawing.Point(0, 0);
this._grid.Name = "_grid";this._grid.Size = new System.Drawing.Size(190, 216);
this._grid.TabIndex = 0;this._grid.Text = "ultraGrid1";
//
// ultraDateTimeEditor1
// this.ultraDateTimeEditor1.Location = new System.Drawing.Point(12, 246);
this.ultraDateTimeEditor1.Name = "ultraDateTimeEditor1";this.ultraDateTimeEditor1.Size = new System.Drawing.Size(144, 21);
this.ultraDateTimeEditor1.TabIndex = 1;
//
// _comparisonGrid
// appearance13.BackColor = System.Drawing.SystemColors.Window;
appearance13.BorderColor = System.Drawing.
SystemColors.InactiveCaption;this._comparisonGrid.DisplayLayout.Appearance = appearance13;
this._comparisonGrid.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;this._comparisonGrid.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
appearance14.BackColor = System.Drawing.
SystemColors.ActiveBorder;appearance14.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance14.BackGradientStyle = Infragistics.Win.
GradientStyle.Vertical;appearance14.BorderColor = System.Drawing.SystemColors.Window;
this._comparisonGrid.DisplayLayout.GroupByBox.Appearance = appearance14;appearance15.ForeColor = System.Drawing.SystemColors.GrayText;
this._comparisonGrid.DisplayLayout.GroupByBox.BandLabelAppearance = appearance15;this._comparisonGrid.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
appearance16.BackColor = System.Drawing.
SystemColors.ControlLightLight;appearance16.BackColor2 = System.Drawing.SystemColors.Control;
appearance16.BackGradientStyle = Infragistics.Win.
GradientStyle.Horizontal;appearance16.ForeColor = System.Drawing.SystemColors.GrayText;
this._comparisonGrid.DisplayLayout.GroupByBox.PromptAppearance = appearance16;this._comparisonGrid.DisplayLayout.MaxColScrollRegions = 1;
this._comparisonGrid.DisplayLayout.MaxRowScrollRegions = 1;appearance17.BackColor = System.Drawing.SystemColors.Window;
appearance17.ForeColor = System.Drawing.
SystemColors.ControlText;this._comparisonGrid.DisplayLayout.Override.ActiveCellAppearance = appearance17;
appearance18.BackColor = System.Drawing.
SystemColors.Highlight;appearance18.ForeColor = System.Drawing.SystemColors.HighlightText;
this._comparisonGrid.DisplayLayout.Override.ActiveRowAppearance = appearance18;this._comparisonGrid.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
this._comparisonGrid.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;appearance19.BackColor = System.Drawing.SystemColors.Window;
this._comparisonGrid.DisplayLayout.Override.CardAreaAppearance = appearance19;appearance20.BorderColor = System.Drawing.Color.Silver;
appearance20.TextTrimming = Infragistics.Win.
TextTrimming.EllipsisCharacter;this._comparisonGrid.DisplayLayout.Override.CellAppearance = appearance20;
this._comparisonGrid.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;this._comparisonGrid.DisplayLayout.Override.CellPadding = 0;
appearance21.BackColor = System.Drawing.
SystemColors.Control;appearance21.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance21.BackGradientAlignment = Infragistics.Win.
GradientAlignment.Element;appearance21.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
appearance21.BorderColor = System.Drawing.
SystemColors.Window;this._comparisonGrid.DisplayLayout.Override.GroupByRowAppearance = appearance21;
appearance22.TextHAlignAsString =
"Left";this._comparisonGrid.DisplayLayout.Override.HeaderAppearance = appearance22;
this._comparisonGrid.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;this._comparisonGrid.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
appearance23.BackColor = System.Drawing.
SystemColors.Window;appearance23.BorderColor = System.Drawing.Color.Silver;
this._comparisonGrid.DisplayLayout.Override.RowAppearance = appearance23;this._comparisonGrid.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
appearance24.BackColor = System.Drawing.
SystemColors.ControlLight;this._comparisonGrid.DisplayLayout.Override.TemplateAddRowAppearance = appearance24;
this._comparisonGrid.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;this._comparisonGrid.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
this._comparisonGrid.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;this._comparisonGrid.Location = new System.Drawing.Point(400, 12);
this._comparisonGrid.Name = "_comparisonGrid";this._comparisonGrid.Size = new System.Drawing.Size(333, 204);
this._comparisonGrid.TabIndex = 2;this._comparisonGrid.Text = "ultraGrid1";
//
// DateConversion
// this.ClientSize = new System.Drawing.Size(754, 311);
this.Controls.Add(this._comparisonGrid);this.Controls.Add(this.ultraDateTimeEditor1);
this.Controls.Add(this._grid);this.Name = "DateConversion";
this.Text = "Date Conversions";((System.ComponentModel.ISupportInitialize)(this._grid)).EndInit();
((System.ComponentModel.
ISupportInitialize)(this.ultraDateTimeEditor1)).EndInit();((System.ComponentModel.ISupportInitialize)(this._comparisonGrid)).EndInit();
this.ResumeLayout(false);this.PerformLayout();
}
public class DateEditorDataFilter : Infragistics.Win.IEditorDataFilter
{
#region IEditorDataFilter Memberspublic object Convert(Infragistics.Win.EditorDataFilterConvertArgs conversionArgs)
{
switch (conversionArgs.Direction)
{
case Infragistics.Win.ConversionDirection.EditorToOwner:case Infragistics.Win.ConversionDirection.EditorToDisplay:
conversionArgs.Handled =
true;DateTime date = (DateTime)conversionArgs.Value;
return string.Format("{0:yyyyMMdd}", date);case Infragistics.Win.ConversionDirection.OwnerToEditor:
conversionArgs.Handled =
true;string dateAsString = (string)conversionArgs.Value;
return DateTime.ParseExact(dateAsString, "yyyyMMdd", null);case Infragistics.Win.ConversionDirection.DisplayToEditor:
conversionArgs.Handled =
true;string dateAsStringD2E = (string)conversionArgs.Value;return System.Convert.ToDateTime(dateAsStringD2E);
}
throw new ApplicationException("Invalid value passed.");
}
#endregion
}
}