Я знаю, что DataGrid поддерживает виртуализацию, поэтому он создает ячейки сетки только для видимых строк. Однако похоже, что это работает только в том случае, если размер DataGrid ограничен.
В моем сценарии DataGrid помещается в средство просмотра прокрутки, например
<ScrollViever>
<StackPanel>
<more elements .../>
<DataGrid ... />
<more elements .../>
</StackPanel>
</ScrollViever>
Кажется, это нарушает виртуализацию. В тех случаях, когда DataGrid должен отображать большое количество элементов, визуальное дерево становится очень большим даже до прокрутки вниз во внешнем ScrollViewer.
Есть ли способ предотвратить предварительное создание всех ячеек DataGrid и их создание при прокрутке вниз ScrollViewer?
РЕДАКТИРОВАТЬ: в основном страница, на которой это размещено, должна быть похожа на веб-страницу с некоторым текстом вверху, большой таблицей и еще одним текстом внизу. Вместо dockview, где всегда видно верх / низ и прокручивается только сетка, должна прокручиваться вся страница. Настройка достигает этого, но страдает от того, что все заранее создано.
ДРУГОЕ РЕДАКТИРОВАНИЕ: есть ли способ определить, что определенная строка таблицы данных была прокручена в поле зрения? Типичные статьи с отложенной загрузкой используют scrollviewer datagrid для добавления дополнительных элементов в сетку, что здесь не работает.