Насколько я знаю, невозможно предотвратить повторное использование элементов визуализации.
Относительно того, как работает утилита рендеринга элементов, позвольте мне дать краткое объяснение:
Предположим, у вас есть компонент на основе списка (например, List, DataGrid и т. Д.) В вашем приложении. Вы показываете, скажем, 100 строк данных (в любом формате, который вы хотите). В большинстве случаев, из-за ограничений экранного пространства и для лучшего удобства использования вы не будете показывать 100 строк одновременно. Вместо этого вы будете показывать, скажем, 10 строк (используя свойство rowCount или назначая компоненту определенную высоту), а также использовать полосы прокрутки для просмотра остальных items. Таким образом, в любой момент времени из 100 строк у вас есть 10 видимых строк, а остальные 90 - вне экрана. Сохранение экземпляров средств визуализации элементов 90 закадровых строк в памяти, в то время как вы можете просматривать только 10 строк одновременно, не Хорошая практика исполнения. То, что делает гибкий фреймворк, заключается в том, что он создает средства визуализации для видимых строк (в данном случае 10) плюс еще 2 или 3 дополнительных средства визуализации (я не уверен, насколько точно). Фреймворк создает только 13 экземпляров средства визуализации элементов. Во время прокрутки фреймворк повторно использует уже созданные средства визуализации элементов для отображения. закадровые строки, передавая свойство данных этой конкретной строки в элемент рендеринга элемента. Другими словами, 14-я строка будет повторно использовать средство визуализации элементов, созданное для первой строки, 15-я строка будет повторно использовать 2-ю строку, 16-я будет повторно использовать 3-ю и т. д. , прокручивая вниз.
Надеюсь, что поможет