覆盖ComboBox的Add方法

时间:2012-09-25 15:12:02

标签: c# windows

有没有办法覆盖Combobx的Add()方法?

我问这个的原因是我想将类对象添加到我的梳理器中但是为了显示我希望它显示我的对象的名称。

所以例如:combbox.Items.Add(myClassObject)

但我们在combbobx中实际看到的内容是用户将显示为myClassObject.Name

4 个答案:

答案 0 :(得分:7)

如果我理解你的要求,你可以使用绑定来做到这一点:

伪代码:

comboBox.DataSource = collectionOfData;
comboBox.DisplayMember = "Name";

数据将添加到组合中,但可视化将是“数据”的Name属性。

这一切都是使用DisplayMember Property完成的。

答案 1 :(得分:4)

由于ComboBox使用{Item}集合中添加的ToString()对象方法在UI上显示,因此覆盖ToString的{​​{1}}以返回您想要的任何内容,它很简单:

myClassObject

通过这种方式,您不会触摸ComboBox Control

答案 2 :(得分:3)

您可以开发extension Method

public static class Extension
{
    public static void Add(this ComboBox, myClassObject value)
    {
       ...
    }
}

答案 3 :(得分:0)

创建一个扩展组合框控件的新控件。
然后覆盖Add方法。