2014-10-07 127 views
0

我想綁定我的綁定列表到DataGridView,但並非所有東西都顯示了!這是我的代碼目前有:除外Person.numbers沒有在DataGridView顯示(僅ID,FName參數& LName的)事實綁定到DataGridView的集合

public class Person 
{ 
    public int ID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public int[] numbers = new int[6] 
} 

public class Data 
{ 
    public static BindingList<Person> persons = new BindingList<Person>(); 
} 

... 

var bl = new BindingList<Person>(persons); 
myGrid.DataSource = bl; 

一切的偉大工程!

任何想法,爲什麼?

+3

'numbers'是字段,使其屬性。 – Sinatr 2014-10-07 12:11:28

+0

我按照建議做的,後面的例子@Felix給了,但我仍然有同樣的問題! :x – sWo 2014-10-07 14:11:39

+0

['AutoGenerateColumns'](http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.autogeneratecolumns.aspx)'= true'或者您是否手動創建列? – Sinatr 2014-10-07 14:39:59

回答

1

我會盡量讓它成爲一個屬性。編輯:要格式化以便在datagridview中使用,可以使用Singleton模式並將列綁定到格式化字符串,如下例所示。

public class Person 
{ 
    public int ID { get; set; } 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public String NumbersString { get; set; } 

    private int[] _numbers; 
    public int[] Numbers 
    { 
     get 
      { 
       return _numbers; 
      } 
     set 
      { 
       _numbers = value; 
       NumbersString = FormatIntoString(_numbers); 

      } 

    } 

    public Person() 
    { 
    numbers = new int[6]; 

    } 


// The write the method that puts the array into a readable form 

private string FormatIntoString(int[] array) 
    { 
    string result = ""; 

    foreach(var x in array) 
     { 
     result += x.ToString() + ","; 
     } 
    return result; 
    } 
+0

嗯,我做了你所說的話,問題依然存在! ;( – sWo 2014-10-07 13:53:33

+0

字段'numbers'是一個數組,你是在爲'numbers'的每個元素專用列還是試圖將整個數組放入一列? – 2014-10-07 14:49:43

+0

你很可能需要設置'AutoGenerateColumns = false '然後單獨創建並綁定每個列[請參閱示例](http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcolumn.datapropertyname.aspx) – 2014-10-07 15:04:24