有沒有辦法重寫Combobx的Add()方法?重寫組合框的添加方法
我問這個問題的原因是我想將類對象添加到我的combbox中,但是爲了顯示我希望它顯示我的對象的名稱。
因此,例如:combbox.Items.Add(myClassObject)
,但我們在combbobx實際看到的用戶將顯示爲myClassObject.Name
有沒有辦法重寫Combobx的Add()方法?重寫組合框的添加方法
我問這個問題的原因是我想將類對象添加到我的combbox中,但是爲了顯示我希望它顯示我的對象的名稱。
因此,例如:combbox.Items.Add(myClassObject)
,但我們在combbobx實際看到的用戶將顯示爲myClassObject.Name
如果我正確理解你的要求,你可以做,使用綁定:
僞代碼:
comboBox.DataSource = collectionOfData;
comboBox.DisplayMember = "Name";
的數據將被添加到組合技,但可視化將是該Name
財產「數據」。
這一切都使用DisplayMember Property完成。
因爲ComboBox
使用它在項目的集合添加到顯示的UI,所以覆蓋的myClassObject
ToString
返回任何你想要的對象ToString()
方法,很簡單:
class myClassObject
{
public override string ToString()
{
return "whatever you want";
}
}
用這種方式,你做不碰ComboBox控件
您可以開發extension Method
public static class Extension
{
public static void Add(this ComboBox, myClassObject value)
{
...
}
}
現有的ComboBox類被設計爲已經做了OP所需要的,他只需要正確地使用它。 – Servy
@BDotA非常瞭解,我們對個性化行爲的可能性 –
您已收到幾個完全不同的有效解決方案。不是很酷?! – Yatrix