如何在列表框中显示基类和子类的属性

时间:2014-09-13 17:03:02

标签: c#

public class Animal
{

 public string Name {get;set;}


}

public string Cat : Animal
{

 public int AmountOfTeeth {get;set;}

}


//In Form.cs:

public void showAnimal(){


 var animalList = _animalManager.GetAnimals();


foreach(var animal in animalList)
{

     animalListbox.Items.Add(animal)
}

如何在列表框中同时显示Name和AmountOfLegs?

像这样:史蒂文14

}

2 个答案:

答案 0 :(得分:2)

ListBox组件显示ToString()方法返回的内容。您可以通过覆盖方法

来更改显示
public class Cat : Animal // note you probably mistyped "class" here
{
    public int AmountOfTeeth { get; set; }
    public override string ToString()
    {
        return Name + " has " + AmountOfTeeth + " teeth"
    }
}

答案 1 :(得分:0)

我喜欢保持数据实体的清洁'而不是只添加显示相关的属性/方法。 我通常做的是为显示创建本地实体。让我们说AnimalDisplay在它的ctor中获得基本实体​​。使用新实体,我可以添加我想要显示的任何道具,或覆盖该母版中的ToString()并在列表中使用它。

这个问题的另一个角度......