我从数据库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”。
有什么线索我怎么强迫这样做?
非常感谢
答案 0 :(得分:1)
如果您的DataGridViewColumn startdate
是string
的类型。您可以在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