C# Datagridview不显示数据

C# Datagridview不显示数据,c#,windows,binding,datagridview,gmail,C#,Windows,Binding,Datagridview,Gmail,我创建了一个Windows应用程序,用于在datagrid中显示Gmail对话。除Datagridview绑定外,所有项目都正常工作。我不知道绑定到Gridview时发生了什么。。请查看我的代码片段,并为我提供解决此问题的解决方案。提前谢谢。。我的代码在下面追加 GmailItem _gItem = null; List<GmailItem> lstMail = new List<GmailItem>(); for (i

我创建了一个Windows应用程序,用于在datagrid中显示Gmail对话。除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;
另外,我在我们的.CS页面中添加了这段代码

 dgMails.Dock = DockStyle.Fill;
            dgMails.AutoGenerateColumns = true;

除了John的评论之外,我还想指出,您的代码以这种方式阅读会更好:

        List<GmailItem> lstMail = new List<GmailItem>();
        for (int i = 0; i < mailCount; i++)
        {
            lstMail.Add(client.GetMailItem(i));
        }

        _bindingMails.DataSource = lstMail;
        dgMails.DataSource = _bindingMails;
List lstMail=new List();
对于(int i=0;i
除了John的评论之外,我想指出,您的代码以这种方式阅读会更好:

        List<GmailItem> lstMail = new List<GmailItem>();
        for (int i = 0; i < mailCount; i++)
        {
            lstMail.Add(client.GetMailItem(i));
        }

        _bindingMails.DataSource = lstMail;
        dgMails.DataSource = _bindingMails;
List lstMail=new List();
对于(int i=0;i
如果不需要通过网格进行更新,可以执行以下操作:

dgMails.DataSource = lstMail; // Without the BindingSource

在将数据添加到BindingSource之前,他们将BindingSource绑定到DataGrid上如果不需要通过网格进行更新,则可以执行以下操作:

dgMails.DataSource = lstMail; // Without the BindingSource
在上,在将数据添加到BindingSource之前将BindingSource绑定到DataGrid(1)检查BindingSource是否没有DataMember的值。DataMember属性告诉BindingSource查找具有该名称的字段/属性以从中获取IEnumerable

2) 确保
DataGridView.AutoGenerateColumns
为True。默认情况下,此属性为True,并且在PropertyGrid上不可见,因此您必须在代码中将其设置为False

已更新

3) Gmail项目是否包含公共属性?字段不起作用。

1)检查BindingSource是否没有DataMember的值。DataMember属性告诉BindingSource查找具有该名称的字段/属性以从中获取IEnumerable

2) 确保
DataGridView.AutoGenerateColumns
为True。默认情况下,此属性为True,并且在PropertyGrid上不可见,因此您必须在代码中将其设置为False

已更新


3) Gmail项目是否包含公共属性?字段不起作用。

什么类型的
\u bindingMail
?@Rhapsody:BindingSource我很抱歉问了一个相当于“你确定它已插入”的问题,但是,你确定邮件数吗!=0?什么类型的
\u BindingMail
?@Rhapsody:BindingSource我很抱歉问了一个相当于“你确定它已插入”的问题,但是,你确定邮件数吗!=0?是否将
dgMails.Autogeneratecolumns
设置为true?(或者您是否设置了每列的
DataPropertyName
)是否
dgMails.Autogeneratecolumns
设置为true?(或者您是否设置了每列的
DataPropertyName