Described are collection view objects, which provide a user interface view
over a data collection, where each view may have its own sort order,
filter and/or grouping criteria, as well as current item semantics. A
user interface element is bound to a data collection, such as via markup
language (e.g., XAML). At runtime, a collection view object is
instantiated as an indirection between the data collection and the user
interface element, whereby a collection of data items is viewed according
to how each collection view object is currently configured with respect
to sorting, filtering and/or grouping. Multiple collection views may be
specified on the same data collection, whereby distinct simultaneous
views of the data items may be presented in different user interface
elements. The collection view object dynamically updates the displayed
data as changes are made in the data collection. A current item may be
selected within the collection view.