我有一个数据绑定数据网格视图。在其中我有一个具有NULL值和1-12的列。我怎样才能在运行时使datagridview将1转换为1月并将其显示在单元格中?并将NULL转换为另一个预定义的字符串?
我尝试查看单元格格式,将其更改为自定义格式,然后输入“MMM”但它无效并在实际单元格中显示“MMM”。
请帮忙。
编辑:它的winforms c#4.0,该字段绑定到EF中的实体的Int字段。并且不需要文化敏感,英语也不错。
编辑:我试过{0:MMM}它没有用,只是在X为int的单元格中显示{X:MMM}。一些截图:
答案 0 :(得分:4)
如果WinForms试试这个:
使用Column.DefaultCellStyle.Format属性或在designer中设置。
这篇文章应该澄清任何疑问:
Customize format of DateTime string in WPF and WinForm data binding
问题:字符串格式化掩码仅适用于DateTime值。你有int,在这种情况下,我认为你将不得不写一个转换函数...
检查一下:
答案 1 :(得分:1)
最简单的方法是为数据绑定创建一个单独的属性,例如包含所需逻辑的DisplayMonth
,然后将单元格绑定到该属性。您使用的是EF生成的课程吗?如果是这样,您可以将此属性添加到分部类以扩展由EF生成的属性。
看起来像是:
public string DisplayMonth
{
get { return ConvertToString(this.Date); //TODO: create ConvertToString method }
set { return this.Date = ConvertFromString() //TODO: create ConvertFromString method ; }
}
如上所述,您也可以使用CellFormatting
事件,但是在网格中使用此对象时,您需要重新实现它。