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 делегаты, чтобы получить значения автоматически и создать соответствующие строки. Я предлагаю вам еще раз взглянуть на учебник / примеры.

Другие вопросы по тегам