2011-04-29 113 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;