AspectGetter从列表中获取对象

时间:2015-10-17 21:46:50

标签: c# listview objectlistview

我有一个项目列表,我想绑定到我的ObjectListView,我认为AspectGetter需要用来实现这一点。我该怎么做呢?

我试过这个来生成其他列,但我仍然无法绑定数据以显示列表项

        int count = 0;
        foreach (var disk in vmObject.DisksList)
        {
            // create column with vhd+count 
            OLVColumn diskColumn = new OLVColumn("Attached VHD " + count, disk.Path);

            // this lets you handle the model object directly
            diskColumn.AspectGetter = delegate(object rowObject)
            {
                // check if that is the expected model type
                if (rowObject is Model.HyperVTools.VMInfo)
                {
                    // return the value of disklist
                    return ((Model.HyperVTools.VMInfo)rowObject).DisksList;
                }
                else
                {
                    return "";
                }
            };

            columnsList.Add(diskColumn);
            count++;
        }


objectListView2.Columns.AddRange(columnsList.Cast<System.Windows.Forms.ColumnHeader>().ToArray());

        objectListView2.AddObject(vmObject);

1 个答案:

答案 0 :(得分:0)

foreach循环是不必要的。您只需要创建一次列。 AspectGetter也是如此。

只要向OLV添加对象,它就会调用AspectGetter代理自动获取值并创建相应的行。我建议你再看一下教程/例子。