我有一个项目列表,我想绑定到我的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);
答案 0 :(得分:0)
foreach
循环是不必要的。您只需要创建一次列。 AspectGetter
也是如此。
只要向OLV添加对象,它就会调用AspectGetter
代理自动获取值并创建相应的行。我建议你再看一下教程/例子。