Хотя более общий, чем некоторые другие советы, вот мой:
При использовании большого количества «элементов» старайтесь избегать создания элемента управления для каждого из них, а скорее используйте элементы управления повторно. Например, если у вас есть 10 000 элементов, каждый из которых соответствует кнопке, очень легко (программно) создать 10 000 кнопок и подключить их обработчики событий, чтобы при вводе в обработчик событий вы точно знали, какой элемент ты должен работать над Однако гораздо эффективнее, если вы создадите, скажем, 500 кнопок (потому что вы знаете, что только 500 кнопок будут видны на экране в любое время) и введете «слой отображения» между кнопками и элементами, который динамически переназначает кнопки различным элементам каждый раз, когда пользователь делает что-то, что может привести к изменению набора кнопок, которые должны быть видны (например, перемещение полосы прокрутки).