2011-04-29 92 views
2

我正在使用winforms应用程序。在我的表单上,我拖放一个DataGridView控件,然后使用属性窗口设置它的一些属性。以下是我用来填充我的DataGridView的代码。我在构造函数中写了这段代码。C#: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; 
+0

检查** **的AutoGenerateColumns属性,尝试将其设置为true – V4Vendetta 2011-04-29 06:37:03

+0

为什么没有人回答之前看看标签。这篇文章与ASP.NET – deostroll 2011-04-29 06:40:39

+0

无关@Jame你检查过这个属性吗? – V4Vendetta 2011-04-29 06:45:03

回答

3

分配数据源之前添加该代码,你应该罚款的性质

dataGridView1.AutoGenerateColumns = true; 

编辑

同时检查您是否拥有可用于显示C的内容的公共属性在DataGridView中作为列的错误

+1

AutoGenerateColumns的默认值是真实的,如果他没有触及它,那么没有再分配true的意思。 – JPReddy 2011-04-29 06:54:37

+1

@JPReddy非常真实..但没有提及他是否已经改变了它的值 – V4Vendetta 2011-04-29 06:55:55

5

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

-4

把这个底:

datagridview1.Databind(); 

这应该做的。

+2

Winforms datagrid不包含一个名为Databind()的方法。 – 2015-07-14 22:08:27

1

今天我几乎有同样的事情,问题是我的clas有公共领域,而不是属性,因为我已经将它们更改为公共汽车属性 - 对我很好。

0

当我在设计师的约束有同样的问题。但是,如果我在构造函数中我结合效果很好

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