我有一个窗体有两个数据绑定的文本框,一个数据绑定的DateTimePicker和一个BindingNavigator。我将这些组件在运行时绑定到相关数据源(文本框和DateTimePicker的'文本'和'值'分别绑定在数据集中的相关字段中)。所有组件都能正确显示当前记录。通常,当点击导航器上的“添加新项目”按钮时,所有文本框都将清除,以准备新条目。但是,我遇到DateTimePicker绑定时不会发生这种问题,并且任何尝试更新数据集都无法正确执行。如果我忽略绑定DateTimePicker,那么所有按预期工作。这种行为的原因是什么?有没有办法解决这个问题?DateTimePicker打破数据绑定
0
A
回答
2
DateTimePicker不支持绑定到可为空的数据。当您添加新行时,该字段的值默认为DBNull.Value,并且无法成功转换为可指定给类型为DateTime的DateTimePicker的Value属性的值。您需要扩展DateTimePicker并添加一个支持DateTime值和DBNull对象的新属性,并绑定该属性或设置DataColumn的DefaultValue属性,以便始终在DateTimePicker中显示DateTime。
0
这个问题通过简单地控制基于本网站绑定源的addrow方法解决了我的情况:http://www.vbforums.com/showthread.php?645401-RESOLVED-datetimepicker-with-binding-source
添加上绑定导航一个新的按钮(为你的“添加”使用),并删除旧的。
连接到click事件,并设置新行的日期时间被添加:
DataRowView row = (DataRowView)bs_.AddNew();
row["dbDateTime"] = DateTime.Now;
其中dbDateTime是你的数据库字段。
尽管您可能必须向click事件添加更多代码,例如移动到数据网格上新添加的行,但该选项迄今为止最容易实现。
相关问题
- 1. datetimepicker bootstrap数据绑定不起作用
- 2. Lodash sortBy函数打破Input()绑定:Angular4
- 3. C#覆盖OnValidating支持空值,但打破数据绑定
- 4. 突破数据绑定层次
- 5. DateTimePicker WPF工具包绑定
- 6. 的DateTimePicker绑定问题
- 7. 如何使绑定datetimepicker
- 8. 打印数据绑定时数据绑定丢失FlowDocument
- 9. OneWayToSource绑定似乎打破了.NET 4.0
- 10. history.back是打破绑定(“滚动”)
- 11. 淘汰赛手风琴绑定打破
- 12. clang_complete是打破我的vim键绑定
- 13. 如何数据绑定Avalon DateTimePicker开始值?
- 14. 数据绑定的DateTimePicker触发验证错误
- 15. 无法在数据绑定中禁用Winforms DateTimePicker
- 16. Debug =“false”打破捆绑
- 17. 打破数据成组
- 18. foreach循环打破数据
- 19. 数据绑定 - 数据绑定控件
- 20. 长阿贾克斯打电话打破淘汰赛绑定
- 21. 打破数组访问数据
- 22. 绑定数据
- 23. 绑定数据
- 24. FocusManager会破坏WPF数据绑定 - 为什么?
- 25. Python TkInter绑定破解
- 26. WPF命令绑定破坏
- 27. 破坏后绑定活着
- 28. Bootstrap DateTimePicker:一次打开一个datetimepicker
- 29. CMF捆绑打破主义? Symfony 2.8
- 30. 从ajax打破功能加载数据
好的。这就说得通了。我试着扩展DateTimePicker的方法如下:'class NullableDateTimePicker:DateTimePicker { public DateTime NullableValue { get { return base.Value; } set if((DateTime)value == null) base.Value = DateTime.Today;其他 base.Value = value; } } }'但问题依然存在。 –
没有必要声明DateTime类型的另一个属性,因为这是DateTimePicker.Value属性的第一个问题。我不确定是否有另外一种方法,但是我已经看到这种方法使用了Object类型的属性,该属性需要接受DateTime值和DBNull对象。请注意,数据不会为空,即没有对象,而是一个DBNull对象,它表示数据库空值。 – jmcilhinney
啊,我明白了。得到它完美的工作表示感谢。 –