The DataCollection library includes several data components that are designed for different scenarios.
C1DataCollection: This collection combines the most common transformations such as sorting, filtering and grouping into one.
C1FilterDataCollection: This collection filters the items creating a new collection by a specified criterion.
C1SortDataCollection: This collection sorts the items by a specified sort path and direction.
C1GroupDataCollection: This special collection supports data record grouping in memory. The level of grouping supported depends on the control. For instance, ListView can only display one-level of grouped data, whereas FlexGrid can show multiple levels.
C1PagedDataCollection: This collection wraps another collection to be shown in pages of a maximum number of items.. This collection is a transforming collection, like C1SortDataCollection or C1FilterDataCollection.
C1CursorDataCollection: This provides abstract base class implementation of IDataCollection for remote-source collection views. It also provides cursor-based data virtualization and can be used to display information from rest-services, or public services like FaceBook, Twitter, DropBox, OneDrive, Google Drive etc. This class is appropriate for wrapping data services that return the data in pages and give a token to get the next page.
C1VirtualDataCollection: This provides abstract base class to provide page-like data virtualization. This collection view also resolves the problem of synchronizing requests and avoiding duplicates.
C1EditableDataCollection: In this collection, changes made to the collection are tracked locally and aren’t committed to the source immediately. It’s similar to the .NET DataTable.
C1SelectDataCollection: This collection allows transforming every item into another item. It is highly useful to create a view-model collection of items. It allows transforming the items through a select clause.
C1SelectManyDataCollection: This collection is like C1SelectDataCollection, but every item of the original collection is converted to a range of items in the resulting collection.
C1CacheDataCollection: This collection keeps a reference to the items when they are accessed. It can be used together with C1SelectDataCollection to avoid calling the selector repeatedly for the same item, and thus improve performance.
C1SequenceDataCollection: This collection allows composing a range of collection into one sequentially to be exposed as a single collection.
C1WrapDataCollection: This collection takes another collection as source to perform some specific transformation. By default, C1WrapDataCollection forwards everything to the source.