[英]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.