C#Date Field DataBinding Value to String

时间:2013-08-17 03:30:40

标签: c# winforms data-binding

我从数据库2日期字段中获取字符串格式,如:

“YYYY.MM.DD”

然后,在我的表单中,我想将DataBinding添加到2个DatePickers,它们将显示如下所示的日期:

dtStart.DataBindings.Add(new Binding("Value", _ds.Tables["invoice"], "startdate"));
dtEnd.DataBindings.Add(new Binding("Value", _ds.Tables["invoice"], "enddate"));

现在的问题是,当我从DatePicker更改日期时,Value将是一个Date,我需要的是更新值,但是使用相同的字符串格式“yyyy.mm.dd”。

有什么线索我怎么强迫这样做?

非常感谢

1 个答案:

答案 0 :(得分:1)

如果您的DataGridViewColumn startdatestring的类型。您可以在Parse的{​​{1}}事件处理程序中添加代码,以便在更新回DataSource之前格式化值:

Binding

但是,我建议您将Binding bind = new Binding("Value", _ds.Tables["invoice"], "startdate"); bind.Parse += (s,e) => { e.Value = ((DateTime)e.Value).ToString("yyyy.mm.dd"); }; dtStart.DataBindings.Add(bind); //Do the same for dtEnd 设为DataGridViewColumn data type。那么您将不需要任何自定义DateTime,只需设置该列中单元格的格式,如下所示:

Parsing