Так как ObjectListView не используется для отображения данных не из БД, стандартного способа отобразить список объектов, созданных прямо в коде, нет.
Тем не менее существует алгоритм решения этой задачи.
Алгоритм добавления данных
- Создать список данных, которые будут отображены.
- Установить у
ObjectListView
используемый тип и представление. - Установить
LimitFunction
так, чтобы из базы ничего не подгрузилось. - Вызвать метод
SetObjects
.
Создание списка данных
В первую очередь создается собственно список данных, которые необходимо будет загрузить в ObjectListView
. Не обязательно, чтобы эти данные были в базе.
Для примера используется переменная myObjects
, в которую будет сохранен созданный список объектов.
Установка используемого типа и представления
Например, необходимо отображать объекты типа Адрес
, по представлению АдресL
.
В коде кстанавливаются настройки ObjectListView
:
objectListView1.DataObjectTypes = new[] { typeof(Адрес) };
objectListView1.ViewName = "АдресL";
Блокировка подгрузки данных из базы
Чтобы данные из базы не подгружались во время обновления (нажатия на кнопку Refresh
), необходимо установить LimitFunction
у ObjectListView
так, чтобы условие никогда не выполнялось. Например, следующим образом:
objectListView1.LimitFunction = FunctionBuilder.BuildFalse();
Добавление объектов в список
Чтобы добавить объекты в список, достаточно вызвать метод SetObjects
у ObjectListView
:
objectListView1.SetObjects(myObjects.ToArray());
Однако, если вызвать этот метод в момент создания формы, то данные потеряются при нажатии на кнопку Refresh
.
Чтобы данные сохранялись, необходимо вызывать этот метод после загрузки данных из базы. Для этого необходимо подписаться на событие AfterFillData
и добавить в обработчик вызов метода SetObjects
, к примеру так:
objectListView1.AfterFillData += (o, s) =>
{
objectListView1.SetObjects(myObjects.ToArray());
};