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

ObjectListView aspect name as other object property

我是 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 的小解决方法,但我有更复杂的模型,必须定义 属性.

很痛苦

有什么办法可以做到吗?

谢谢

根据您所说的,这应该可行。所以一定是有其他问题导致了这个问题。

您可以尝试以编程方式设置 AspectGetter,例如这样;

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

然后您可以在此代码中放置一个断点,然后查看 when/if 它被调用以及发生了什么。

请记住,在调用 objectListView1.SetObjects

之前,您必须 define/set 所有方面的 getter 等