Если у вас есть много данных для отображения в Control
, таких как ListView
, вам понадобится способ виртуализации созданного и используемого Nodes
. В противном случае это повлияет на объем памяти и, следовательно, время.
Например, если у вас есть 10 миллионов элементов данных, вы не хотите создавать 10 миллионов узлов. Таким образом, вы создаете достаточное количество узлов для динамического заполнения дисплея и повторного использования, когда пользователь прокручивает элемент управления ListView
.
От documentation:
Поскольку TreeView, ListView, TableView и другие подобные элементы управления могут потенциально могут быть использованы для отображения невероятно больших объемов данных, это не представляется возможным создать реальную ячейку для каждого отдельного элемента в контроль. Мы представляем чрезвычайно большие наборы данных, используя только очень маленькие ячейки. Каждая ячейка «перерабатывается» или используется повторно. Это то, что мы имеем в виду , когда мы говорим, что эти элементы управления виртуализированы.
P.S: каждая структура имеет этот вид виртуализации, будь то Android, WPF, JavaFX и т.д.
От одного из разработчиков JavaFX: http://fxexperience.com/2009/09/ui-virtualization/