Если я использую ListView в виртуальном режиме затем, насколько я понимаю, представление списка только отслеживает небольшое количество объектов в списке. Поскольку пользователь прокручивает его, динамично получает объекты, которые это должно показать из виртуального списка.
Но что, если объект добавлен или удален из основного списка? Если бы объект добавляется/удаляется за пределами диапазона индексов, показываемых представлением списка затем, я предположил бы, что представление списка покажет добавленные/недостающие объекты, когда пользователь прокрутит к тому индексу. Это корректно? Но что, если объект добавляется/удаляется от диапазона индексов, пользователь в настоящее время просматривает? Как я инициировал представление списка для обновления объектов, которые оно в настоящее время просматривает для показа новых/недостающих объектов?
К вашему сведению: я использую ObjectListView, если это имеет какое-либо значение.
Виртуальный список ничего не знает о вашем списке элементов. Он их не отслеживает, даже небольшой набор. Он только всегда спрашивает "что вы хотите показать в n-м ряду?"
Если ваш главный список изменится, все, что вам нужно сделать, это перерисовать список. Invalidate ()
сделает это за вас. Затем список снова спросит вас, что он должен отображать в каждой строке, видимой в элементе управления.
Если вы используете ObjectListView, рассматривали ли вы возможность использования FastObjectListView, который дает вам преимущества скорости виртуального списка и простоту использования обычного ObjectListView?