2013-06-04 79 views
0

我想填充組合框與矩陣填充組合框與矩陣

矩陣:

object[,] codes = new object[,] { 
      { "1", "BANK S/A" }, 
      { "2", "BANK Center" }, 
      { "3", "BANK AMAZON S/A" }}; 

填寫我的組合框:

comboBank.DataSource = codes; 
comboBanco.DataBind(); 

但在我的下拉列表中出現的商品

1 
BANK S/A 
2 
Bank Center 
3 
Bank Amazon S/A 

我想用這些名稱而不是ID填充此組合框,並且在這些組合框的Value屬性中,我需要該ID。

我想在我的組合框什麼

Bank S/A 
Bank Center 
Bank Amazon S/A 

我怎麼能這樣做?

回答

1

這裏有一個簡單的輔助方法,你可以用它來得到一個列了一個二維數組:

public static IEnumerable<T> GetColumn<T>(T[,] array, int column) 
{ 
    for (int i = 0; i < array.GetLength(0); i++) 
     yield return array[i, column]; 
} 

使用,你可以只修改代碼以:

comboBank.DataSource = codes.GetColumn(1); 

話雖如此,這裏真正的問題是當你真正應該擁有一個包含int和string的對象的單維數組時,你正在使用一個多維數組。

public class Code 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
} 

Code[] codes = new Code[]{ 
    new Code(){ID=1, Name="BANK S/A"}, 
    new Code(){ID=2, Name="BANK Center"}, 
    new Code(){ID=3, Name="BANK AMAZON S/A"}, 
}; 

一旦你有一個強類型數組,你既可以使用Select選擇屬性顯示,或設置組合框的DisplayMember

1

也許你可以嘗試這樣的事:

List<dynamic> list = new List<dynamic>(); 

for(int i = 0; i < codes.Lenght; i++) 
    list.Add(new { Value = code[i][0], Text = code[i][1] }); 

comboBox.DataSource = list; 
comboBox.DisplayMember = "Text"; 
comboBox.ValueMember = "Value"; 
+0

他有一個多維數組,而不是一個交錯數組。 – Servy