[英]C# populate combobox
如何用一個數組填充C#中的組合框,該數組的顯示成員是數組的值,而值成員是數組的鍵?
string[] RelayTypeArray = new string[4];
RelayTypeArray[0] = null;
RelayTypeArray[1] = "Boiler";
RelayTypeArray[2] = "Valve";
RelayTypeArray[3] = "Pump";
cmb_RelayType.DataSource = RelayTypeArray;
cmb_RelayType.DisplayMember = RelayTypeArray;
cmb_RelayType.ValueMember = ?????
照原樣使用數組...
string[] RelayTypeArray = new string[4];
RelayTypeArray[0] = null;
RelayTypeArray[1] = "Boiler";
RelayTypeArray[2] = "Valve";
RelayTypeArray[3] = "Pump";
cmb_RelayType.DataSource = RelayTypeArray;
如果需要文本: cmb_RelayType.SelectedValue
如果需要索引: cmb_RelayType.SelectedIndex
如果僅將string[]
作為DataSource
放置,則不必定義DataMember
或ValueMember
。 您可以簡單地獲取myComboBox.SelectedValue
和myComboBox.SelectedIndex
。
DataMember
-Property只是描述了一個屬性,該屬性將在您設置為DataSource
的類型的ComboBox中顯示。
例如,您設置了一個
class Test
{
public string Name { get; set; }
public int Id { get; set; }
}
作為DataSource
並希望該框顯示您必須設置的Name
屬性
myComboBox.DataMember = "Name";
ValueMember
是GUI的“不可見”屬性,您可以在其中存儲值以供以后使用,例如:
myComboBox.ValueMember = "Id"
因此,如果有人通過其顯示的Name
選擇一項,則可以從ComboBoxItem
的Value
(不知道該屬性的正確名稱)屬性中獲取Id
。
使用一個類並綁定它的集合:
class RelayType
{
private int m_Index;
private string m_Value;
public RelayType(int index, string value)
{
m_Index = index;
m_Value = value;
}
public int Index
{
get { return m_Index; }
}
public string Value
{
get { return m_Value; }
}
}
var relayTypeCol = new List<RelayType>();
relayTypeCol.Add(new RelayType(0, ""));
relayTypeCol.Add(new RelayType(1, "Boiler"));
relayTypeCol.Add(new RelayType(2, "Valve"));
relayTypeCol.Add(new RelayType(3, "Pump"));
cmb_RelayType.DataSource = relayTypeCol;
cmb_RelayType.DisplayMember = "Value";
cmb_RelayType.ValueMember = "Index";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.