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;

Datagridview不显示数据

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

添加数据之前将BindingSource绑定到DataGrid