AspectGetter для получения объекта из списка
У меня есть список элементов, которые я хотел бы связать с моим 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 ответ
foreach
петля не нужна. Вам нужно создать столбец только один раз. То же самое касается AspectGetter
,
Как только вы добавите объекты в OLV, он вызовет AspectGetter
делегаты, чтобы получить значения автоматически и создать соответствующие строки. Я предлагаю вам еще раз взглянуть на учебник / примеры.