C#:Datagridview不显示数据

时间:2011-04-29 06:32:29

标签: c# winforms datagridview

我正在开发winforms应用程序。在我的表单上,我只需拖放一个DataGridView控件,然后使用属性窗口设置它的一些属性。以下是我用来填充DataGridView的代码。我在构造函数中编写了这段代码。

List<MyCustomClass> lst = new List<MyCustomClass>();
lst = LoadList(/*some params here*/);//now uptil this point everything works i.e the list contains values as desribed.
dataGridView1.DataSource = lst;

问题是当我运行程序时,我的DataGridView中没有显示任何内容。

有关详细信息,以下代码表示我使用属性窗口设置的属性

        this.dataGridView1.AllowUserToAddRows = false;
        this.dataGridView1.AllowUserToDeleteRows = false;
        this.dataGridView1.AllowUserToResizeRows = false;
        this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
        this.dataGridView1.BackgroundColor = System.Drawing.Color.White;
        this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
        this.dataGridView1.GridColor = System.Drawing.Color.White;
        this.dataGridView1.Location = new System.Drawing.Point(2, 329);
        this.dataGridView1.Margin = new System.Windows.Forms.Padding(2);
        this.dataGridView1.MultiSelect = false;
        this.dataGridView1.Name = "dataGridView1";
        this.dataGridView1.RowHeadersVisible = false;
        this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
        this.dataGridView1.Size = new System.Drawing.Size(334, 106);
        this.dataGridView1.TabIndex = 0;

6 个答案:

答案 0 :(得分:6)

您必须为数据网格创建数据列。确保您还使用受尊重的DataSource项的属性(即'MyCustomClass'类的属性)设置每列的'DataPropertyName'属性。

答案 1 :(得分:3)

在分配DataSource之前添加此代码,你应该没问题

dataGridView1.AutoGenerateColumns = true;

修改

同时检查你是否有公共属性用于在ClassGridView中显示Class的内容作为列

答案 2 :(得分:3)

我今天几乎有同样的事情,问题是我的公司有公共领域,而不是房产,因为我已将它们改为公共汽车房产 - 对我来说效果很好。

答案 3 :(得分:1)

当我在设计师中绑定时遇到同样的问题。但是,如果我在构造函数中绑定它运行良好

dataGridView1.DataSource = personBindingSource;
personBindingSource.DataSource = persons;

答案 4 :(得分:0)

就我而言,我没有财产的吸气剂!

答案 5 :(得分:-6)

把它放在最后:

datagridview1.Databind();

应该这样做。