我在使用ComboBox時遇到一些問題。C#組合框覆蓋ToString
爲我的組合框的顯示部件沒有被類MAP的重寫的ToString方法填充。
這裏是我的代碼:
Form1.cs中:
private void Form1_Load(object sender, EventArgs e) {
...
...
MAPList MAP = new MAPList();
comboBox1.DataSource = MAP.All;
comboBox1.ValueMember = "Code";
...
...
}
MAPList.cs:
public class MAPList {
public readonly List<MAP> All;
public MAPList() {
All = new List<MAP>();
var MapData = // Getting map data
foreach(MAP m in MapData) {
All.Add(new Map(m.Name, m.Code));
}
}
}
MAP.cs:
public class MAP {
public readonly string Name;
private string code;
public string Code { get { return code; } }
public RadioCode(string Name, string Code) {
this.Name = Name;
this.code = Code;
}
public override string ToString() {
return String.Format("{0}: {1}", Name, Code);
}
}
什麼是關係?我沒有看到你在任何地方調用對象映射 – vodkhang 2010-09-08 05:54:00
那麼顯示什麼呢?只是「MAP」? – 2010-09-08 05:57:30
您正在將ValueMember設置爲「代碼」屬性。你的.ToString重寫將無處被調用。而不是重寫ToString,只需將該代碼公開爲實例屬性並綁定到該屬性即可。 – RPM1984 2010-09-08 05:59:42