数据绑定DataGridView单元格格式Int到月份名称转换

spr*_*t12 5 c# int formatting datagridview winforms

我有一个数据绑定datagridview.在其中我有一个具有NULL值和1-12的列.我如何在运行时使datagridview将1转换为1月并将其显示在单元格中?并将NULL转换为另一个预定义的字符串?

我尝试查看单元格格式,将其更改为自定义,然后输入"MMM"但它不起作用并在实际单元格中显示"MMM".

请帮忙.

编辑:它的winforms c#4.0,该字段绑定到EF中的实体的Int字段.不需要文化敏感,英语很好.

编辑:我尝试{0:MMM}它没有工作,只是在单元格中显示{X:MMM},其中X是int.

一些截图:

格式

结果

Kev*_*ick 1

最简单的方法是为databinding 创建一个单独的属性,例如DisplayMonth包含所需的逻辑,然后将单元格绑定到该属性。您使用 EF 生成的类吗?如果是这样,您可以将此属性添加到分部类中以扩展 EF 生成的分部类。

它看起来像:

public string DisplayMonth
{
  get { return ConvertToString(this.Date); //TODO: create ConvertToString method }
  set { return this.Date = ConvertFromString() //TODO: create ConvertFromString method ; }
}
Run Code Online (Sandbox Code Playgroud)

正如已经提到的,您还可以使用该CellFormatting事件,但是您需要在网格中使用该对象的任何地方重新实现它。