This topic shows what you can do to make your app efficient at manipulating collections.There are two key factors in performance when it comes to collections: one is the time spent by the UI thread creating items; the other is the memory used by both the raw data set and the UI elements used to render that data.
This means that UI elements representing the items are created on demand.
For an items control bound to a 1000-item collection, it would be a waste of resources to create the UI for all the items at the same time, because they can't all be displayed at the same time.
To preserve smooth panning/scrolling you can choose to render an item in multiple phases in addition to using placeholders.
An example of these techniques is often seen in photo-viewing apps: even though not all of the images have been loaded and displayed, the user can still pan/scroll and interact with the collection.
Keep the number of UI elements used to render your items to a reasonable minimum.
When an items control is first shown, all the elements needed to render a viewport full of items are created.
Also, as items approach the viewport, the framework updates the UI elements in cached item templates with the bound data objects.
Minimizing the complexity of the markup inside templates pays off in memory and in time spent on the UI thread, improving responsiveness especially while panning/scrolling.
List View and Grid View (and other standard Items Control-derived controls) perform UI virtualization for you.