通常在ComboBox, ListBox下,列表的字串,在DB都會有相對應的ID,但是這些ID可能不是連續的數字,甚至不是數字。那在處理的過程中,就必須使用查表的方式,來找出選擇的字串所對應的ID。如此在程式的寫作上非常不方便,也不好維護。
在找MSDN有關ComboBox時,會發現它的Items屬性,包含的是Object,而不是String。因此由這個方向,可以猜出,ComboBox如何顯示Object在它的List中。查Object物件,通常都會發現ToString這個virtual function。也因此ComboBox應該也是使用這個function來顯示物件。
同理,那ComboBox如何辦別在List中的物件,也是使用Object中的Equals,來辨認Object是否是相同的。
因此只要在自定物件下,override這兩個函數,即可達到我們的目的。
EX:
class A {
public String ID = null;
public Stirng Title = null;
public A(String id, String title) {
this.ID = id;
this.Title = title;
}
public override String ToString() {
return Title;
}
public override bool Equals(object o) {
if(o == null || GetType() != o.GetType()) return false;
A tmp = (A)o;
return (tmp.Title.Equals(Title) && tmp.ID.Equals(ID));
}
}