我目前正在使用 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/