Я не знаю, как с ObjectListView включать любые элементы, которые не являются частью вашей модели.
Итак, простой способ состоит в том, чтобы изменить вашу модель, включив в нее свойство «Удалить», которое затем можно отобразить в вашем ObjectListView.
Конечно, это не всегда возможно! Особенно, если вы имеете дело с элементами, которые записываются в / из базы данных или другого персистентного слоя.
Тогда уловка заключается в том, чтобы написать производный класс с вашей моделью, являющейся базовым классом, а затем просто добавить столбец удаления в это. Но тогда вам нужно будет преобразовать из вашей Base в производный класс, прежде чем показывать в ObjectListView.
Следующий код может помочь с этим.
Вы сохраняете настройки ваших столбцов такими же, как у вас уже сделано. Предполагая, что ваш (теперь базовый) класс определен так:
public class MyClass
{
public string name { get; set; }
public int age { get; set; }
public bool inuse { get; set; }
}
Ваш производный класс наследует от него, добавляет свойство delete и новый конструктор
public class MySecondClass : MyClass
{
public bool Delete { get; set; }
public MySecondClass(MyClass other)
{
//Copy from MyClass
this.name = other.name;
this.age = other.age;
this.inuse = other.inuse;
//Set default for new properties
this.Delete = false;
}
}
Ваш код для извлечения объектов и установите их тогда выглядит так
using (var context = new objectDb())
{
var objectlist = context.objects.ToList();
//Now we need to convert to the derived class type
var secondlist = list.ConvertAll(x => new MySecondClass(x));
//Then we setobjects using this new list
fastoLV_Clean.SetObjects(secondlist);
}