我正在开发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;
答案 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();
应该这样做。