Datagridview不显示数据
本文关键字:数据 显示 Datagridview | 更新日期: 2023-09-27 17:49:01
我创建了一个用于在数据网格中显示Gmail对话的Windows应用程序。除了Datagridview绑定外,所有项都在工作。我不知道绑定到Gridview发生了什么。请审查我的代码片段,并给我解决这个问题的解决方案。提前感谢……我的代码如下…
GmailItem _gItem = null;
List<GmailItem> lstMail = new List<GmailItem>();
for (int i = 0; i < mailCount; i++)
{
_gItem = new GmailItem();
_gItem = client.GetMailItem(i);
lstMail.Add(_gItem);
}
_bindingMails.DataSource = lstMail;
dgMails.DataSource = _bindingMails;
在设计器页面中,这是Datagridview
的代码 this.dgMails.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgMails.Location = new System.Drawing.Point(6, 19);
this.dgMails.Name = "dgMails";
this.dgMails.Size = new System.Drawing.Size(504, 150);
this.dgMails.TabIndex = 0;
同时,我在我们的。cs页面中添加了这段代码
dgMails.Dock = DockStyle.Fill;
dgMails.AutoGenerateColumns = true;
1)检查BindingSource没有DataMember的值。DataMember属性告诉BindingSource查找具有该名称的字段/属性,以从中获取IEnumerable。
2)确保DataGridView.AutoGenerateColumns
为True。此属性默认为True,并且在PropertyGrid中不可见,因此您必须在后面的代码中将其设置为False。
3) GMailItem是否包含公共属性?
除了JonH的注释,我还想指出,您的代码这样读起来会更好:
List<GmailItem> lstMail = new List<GmailItem>();
for (int i = 0; i < mailCount; i++)
{
lstMail.Add(client.GetMailItem(i));
}
_bindingMails.DataSource = lstMail;
dgMails.DataSource = _bindingMails;
如果您不需要通过网格进行更新,您可以:
dgMails.DataSource = lstMail; // Without the BindingSource
在MSDN示例中,他们在向BindingSource