VB.NET中BindingList绑定DataGridView行数正确但单元格为空
问题原因
WinForm DataGridView 数据绑定引擎默认只会读取绑定对象类型的公共属性,无法识别公共字段。
你代码中User类定义的id、firstName、lastName均为公共字段,绑定引擎无法获取这些字段的实际值,因此控件只能渲染出和数据源条目数量匹配的空行,无法填充对应数据。
修复方案
将User类中的公共字段修改为公共属性即可,修改后的User类代码如下:
Public Class User Sub New() End Sub ' 公共字段改为自动实现的公共属性 Public Property id As Integer Public Property firstName As String Public Property lastName As String End Class
可选优化
你原有代码中已经创建了BindingSource实例但未实际使用,推荐通过BindingSource中转绑定,后续实现排序、筛选、增量更新时逻辑会更简洁,对应绑定部分代码调整为:
' 绑定中转 Dim source = New BindingSource(bList, Nothing) DataGridView1.DataSource = source
修改完成后重新运行窗体,DataGridView即可正常展示所有绑定数据。
内容的提问来源于stack exchange,提问作者Wabi-Sabi
相关产品推荐
相关产品推荐

