Здравствуйте, Артём, Вы писали:
Ф>> определить видим он или нет
Аё>Для этого нужно либо прибить высоту элемента гвоздями, либо- в случае если высота не прибита и отличается в зависимости от содержимого, тебя ждёт интересное путешествие по граблям и алгоритмам.
Для неприбитой высоты гвоздями эта задача не реализуема: чтобы определить видимость элемента по позиции скролла, тебе нужно посчитать размер контрола (самого грида). В случае, когда высота элемента константна, это возможно, но в случае если нет, то список уже должен быть не виртуальным — чтобы определить видимость, тебе нужна позиция скролла, размер грида, размер "окна" и размер каждого элемента.
Ф>>Поверь мне на слово, сделать кастомную релизацию IList над таблицей в БД,
Аё>Хз, я не считаю это чем-то полезным или умным.
Просто ты не сталкивался с такими задачами. Чтобы осознать нужность такого механизма, тебе нужно попробовать придумать (спроектировать) GUI (с нормальным UX), который бы мог одинаково хорошо отображать и 20, и 200, и и 100 миллионов элементов — самома область такая: отображение истории операций в хронологическом порядке. Примерно представить зачем это нужно, ты можешь, открыв виндовый Event Viewer. Но они там решили эту задачу на троечку.
| | Event Viewer |
| |  |
| | |
| | у Sysinternals вышло немножко лучше |
| |  |
| | |
Раз ты считаешь, что это не нужно, то выкати свой рецепт: как бы ты отобразил (показал пользователю) историю операций? Напиши User Story — интересно.