La mejor práctica de cuándo cargar datos en un ListBox

WPF / VC ++ (C ++ / cx) - Visual Studio 2013

Así que tengo un cuadro de lista que se rellena con un UserControl que he creado. Cada vez que la página cambia los datos se pierden, lo que es desafortunado. Así que tengo la opción de cargar los datos en el ListBox cada vez que se carga la página o pasar los datos de una página a otra. Cada uno tiene su propia ventaja y desventaja, pero ¿hay alguna práctica preferida?

Supongo que lo que hay que pensar sería cuántos de los UserControls están en el ListBox, que podría ser una gran cantidad (más de 10000+), y cómo se almacenan los datos. Por ahora, estoy almacenando los datos en un AVLTree, principalmente para la organización, por lo que no es necesario hacer una clasificación. Solo hay 10 páginas, 6 de las cuales normalmente se navegarían a (4 de ellas son páginas que son menús que rara vez se usan o solo se usan una vez), por lo que los datos no deberían pasar de una página a otra con frecuencia. El tamaño de cada nodo de datos solo es de ~ 1 mb, por lo que no es muy grande, pero sí lo suficientemente grande como para marcar la diferencia al comenzar a obtener más de 10000 entradas (lo que podría considerarse una circunstancia rara).

Vengo de la programación de juegos, así que la velocidad y la eficiencia es un objetivo primordial.

Sí, es una pregunta subjetiva, sin embargo, es posible que exista un método preferido entre los profesionales o la comunidad general de programación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta