ToString не будет вызываться, если вы установите ValueMember
.Если вы не установите ValueMember
, он будет работать как положено, но, конечно, Code
не будет использоваться в качестве выбранного значения ComboBox.
В качестве альтернативы, если вы хотите использовать ValueMember
, вы также можете установить DisplayMember
.Вы можете создать на вашем MAP
свойство, которое будет использоваться для отображения, например:
public class MAP
{
public readonly string Name;
private string code;
public string Code { get { return code; } }
public string Display { get { return ToString(); } }
public MAP(string Name, string Code)
{
this.Name = Name;
this.code = Code;
}
public override string ToString()
{
return String.Format("{0}: {1}", Name, Code);
}
}
В форме вы можете установить DisplayMember
:
MAPList MAP = new MAPList();
comboBox1.DataSource = MAP.All;
comboBox1.ValueMember = "Code";
comboBox1.DisplayMember = "Display";