.net - 将 Winforms 控件数据绑定(bind)到可为空类型的最佳方法?

标签 .net winforms data-binding nullable

我目前正在使用 winforms 数据绑定(bind)来连接数据编辑表单。我通过 CodeSmith 使用 netTiers 框架来生成我的数据对象。对于允许空值的数据库字段,它会创建可空类型。我发现使用 winforms 数据绑定(bind)控件不会正确绑定(bind)到可为空的类型。

我在网上看到了一些解决方案,建议人们创建可以处理可为空类型的新文本框类,但这可能会很痛苦,因为必须在我已经创建的表单上换掉文本框。

最初我认为使用扩展方法来做到这一点会很棒。基本上为文本框类创建一个扩展属性并绑定(bind)到它。从我有限的扩展方法经验和在线检查来看,您似乎无法进行扩展属性。据我所知,绑定(bind)必须通过属性,因为它需要能够获取或设置值,因此扩展方法不起作用。

我很想找到一种干净的方法来使用扩展方法之类的方法来改造这些表单,但是如果我必须创建新的文本框和组合框控件,那我就会这样做。

由于需要在 Windows 2000 上运行,我的项目目前仅限于 .Net 2.0。

有什么建议么?

最佳答案

在上面引用的文章的评论部分,其中一位海报提出了一个简单的解决方案。

而不是绑定(bind):

textBox1.DataBindings.Add("Text", myClass, "MyTextProperty");

绑定(bind):
textBox1.DataBindings.Add("Text", myClass, "MyTextProperty", true, DataSourceUpdateMode.OnPropertyChanged, string.Empty); 

关于.net - 将 Winforms 控件数据绑定(bind)到可为空类型的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376361/

相关文章:

c# - 如何从数据库中获取 SQL CLR 函数的定义

c# - String.Join 与字符串连接 : Code Improvement

c# - 诊断/调试潜在的堆栈损坏.NET应用程序

c# - 确定单选按钮组的检查状态是否已更改

c# - 让表单出现在一切之上

c# - 如何取消通过数据绑定(bind)所做的更改?

wpf - 动态更改 WPF Datagrid 列标题

c# - 使用 ClosedXML 创建下拉列表

.net - 如何根据列表中是否存在绑定(bind)对象来设置 CheckBox.IsChecked

asp.net-mvc - 用于 json 嵌套数组的 MVC3 绑定(bind)