- 经验
- 18
- 金币
- 112
- 游币
- 100
- 最后登录
- 2012-3-14
- 注册时间
- 2009-12-4
- 帖子
- 11
- 积分
- 25
- 阅读权限
- 10
- UID
- 560

- 游币
- 100
- 金币
- 112
- 经验
- 18
- 积分
- 25
- 帖子
- 11
|
发表于 2011-11-29 11:14:11
|显示全部楼层
各位大神好:
请教个问题。跪求解答。
小弟用WPF的DataGrid控件做了一个数据库数据编辑的小Demo程序,由于数据表字段未知,只能采用DataTable.DefaultView的形式,给DataGrid设置ItemsSource。我根据DataTable的Structure,那个代码创建了DataGrid的Column,设置每个Column的Binding为TwoWay(为了后面取到数据),设置UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged以保证每次数据修改都会被更新到ItemsSource对应的那个DataRowView里面去。然后用DataGrid.RowEditEnding事件,获取到最新被修改的行的DataRowView对象,从而得到被修改后的值。
经过测试,对int,double,float,string的数据支持都没问题,但是对datetime的数据就出现问题了。datetime的数据,在RowEditEnding事件取到的DataRowView里面,这个字段的值始终是空白的(不是null)。导致了这个字段的值无法被更新到数据库中。
先后尝试过用代码产生TemplateColumn,然后设置CellEditTemplate的VisualTree为一个DateTimePicker控件,但是获取到的值仍然是空白的,用Text控件也测试过,取到的值也是空白的。如果不用模板列,就用DataGrid自己创建的输入框输入,输入框在输入过程中会出现红色边框,然后提交之后这个Datetime列还是空白的。各种尝试都失败了。
因此在这里发帖,跪求各位大神帮忙出出主意,以解决这个问题。先谢谢各位了。 |
|