How to show two format in GridDateTimeColumn in WinForms DataGrid (SfDataGrid)?
By default, SfDataGrid doesn’t have a support for display date time value in two format in GridDateTimeColumn. You can achieve this by overriding OnRender method in GridDateTimeCellRenderer.
this.sfDataGrid.CellRenderers.Remove("DateTime");
this.sfDataGrid.CellRenderers.Add("DateTime", new GridDateTimeCellRendererExt());
public class GridDateTimeCellRendererExt : GridDateTimeCellRenderer
{
protected override void OnRender(Graphics paint, Rectangle cellRect, string cellValue, CellStyleInfo style, DataColumnBase column, RowColumnIndex rowColumnIndex)
{
string[] date = cellValue.Split();
SizeF size = paint.MeasureString(date[0], style.Font.GetFont());
float height = (cellRect.Height - size.Height) / 2;
paint.DrawString(date[0], style.Font.GetFont(), new SolidBrush(style.TextColor), cellRect.X, cellRect.Y + height);
paint.DrawString(date[1], new Font(style.Font.Facename, style.Font.Size, FontStyle.Bold), new SolidBrush(style.TextColor), cellRect.X + size.Width, cellRect.Y + height);
}
}
