ObjectListView方面名称作为其他对象属性

时间:2017-12-21 16:43:26

标签: c# objectlistview

我是ObjectListView的新手,我还没有找到如何在模型中使用对象的属性作为ObjectListView的AspectName。

例如,列表将显示汽车名称及其所有者名称

public class Person
{
    private string _name;


    public string Name
    {
        get => _name;
        set => _name = value;
    }
}

public class Car
{
    private Person _owner;
    private string _name;

    public Person Owner
    {
        get => _owner;
        set => _owner = value;
    }

    public string Name
    {
       get => _name;
       set => _name = value;
    }

}

如果我将列的AspectName设置为Owner.Name,则它不会在列表中显示任何内容。我已经在Car模型中定义了一个属性OwnerName的小方法,但我有更复杂的模型,这是必须定义该属性的痛苦。

我有办法做到吗?

由于

1 个答案:

答案 0 :(得分:0)

根据你所说的,这应该有效。因此,必然存在导致此问题的其他问题。

您可以尝试以编程方式设置AspectGetter,例如:

this.olvColumn2.AspectGetter = delegate (Object obj) 
{
    Car car = (Car)obj;
    if (car == null)
        return "Unknown";
    else
    return car.Owner.Name;
};

然后,您可以在此代码中放置一个断点,并查看何时/是否调用它以及会发生什么。

请记住,在致电objectListView1.SetObjects

之前,您必须定义/设置所有方面获取者等