2010-09-24 26 views
2

我有一個BindingList,我想用於DataGrid視圖上的數據源。
我添加了dataGridView1和按鈕1到窗體。 當我按下按鈕時,dataGridView上沒有任何顯示。如果我使用DataTable作爲數據源,它工作正常。我必須錯過簡單的東西。BindingList <T> DataGridView的數據源

public partial class Form1 : Form 
{ 
    BindingList<ClassificationInfo> boundList; 
    ClassificationInfo item; 

    private void button1_Click(object sender, EventArgs e) 
    { 
     boundList = new BindingList<ClassificationInfo>(); 

     item = new ClassificationInfo(); 
     item.bExclude = 1; 
     item.iColor = 123456; 
     item.szDescription = "Test line 1"; 
     boundList.Add(item);  

     item = new ClassificationInfo(); 
     item.bExclude = 0; 
     item.iColor = 7890123; 
     item.szDescription = "Test line 2"; 
     item.iOrder = 2; 
     boundList.Add(item); 

     dataGridView1.DataSource = boundList; 
    }  

    public class ClassificationInfo 
    { 
     public int iColor; 
     public int iOrder; 
     public string szDescription; 
     public int bExclude; 
    } 
} 

回答

4

將ClassificationInfo上的公共字段轉換爲屬性。

public class ClassificationInfo 
{ 
    public int iColor { get; set; } 
    public int iOrder { get; set; } 
    public string szDescription { get; set; } 
    public int bExclude { get; set; } 
} 

數據綁定在幾乎所有情況下依靠TypeDescriptor,它使用的PropertyDescriptor發現性能。字段被忽略(因爲它們應該是 - 它們應該被封裝),所以你的數據綁定不起作用。

+0

這工作。謝謝。你是如何正確設置我的帖子的?我以爲我把它發佈在代碼標籤之間,但整個代碼塊在發佈時並未突出顯示。 – DarwinIcesurfer 2010-09-24 14:29:42

+0

本網站不使用代碼標記,不知道你在哪裏。在編輯帖子時,您可以做什麼的右側摘要,或者您只需在編輯器中單擊代碼按鈕(1s和0s)並選擇代碼(代碼格式是在開頭的4個空格處)線)。 – 2010-09-24 14:30:43

相關問題