C1.DataCollection
10.0.20252.3
dotnet add package C1.DataCollection --version 10.0.20252.3
NuGet\Install-Package C1.DataCollection -Version 10.0.20252.3
<PackageReference Include="C1.DataCollection" Version="10.0.20252.3" />
<PackageVersion Include="C1.DataCollection" Version="10.0.20252.3" />
<PackageReference Include="C1.DataCollection" />
paket add C1.DataCollection --version 10.0.20252.3
#r "nuget: C1.DataCollection, 10.0.20252.3"
#:package C1.DataCollection@10.0.20252.3
#addin nuget:?package=C1.DataCollection&version=10.0.20252.3
#tool nuget:?package=C1.DataCollection&version=10.0.20252.3
About
The ComponentOne DataCollection library includes a series of cross-platform observable collections with features like sorting, grouping and filtering and data virtualization techniques like cursor and pagination.
Commonly Used Types:
- C1.DataCollection.C1DataCollection
- C1.DataCollection.C1VirtualDataCollection
- C1.DataCollection.C1CursorDataCollection
- C1.DataCollection.C1PagedDataCollection
In-memory Data Collections
C1DataCollection is the main class used to sort, filter and group any in memory collection like lists, arrays or observable collection
var collection = new ObservableCollection<Item>();
var dc = new C1DataCollection<Item>(collection);
await dc.SortAsync("Property1", "Property2");
All the data-collections implement INotifyCollectionChanged, when a change happens in the underlying ObservableCollection, the change will be reflected and notified immediatly in the data-collection.
Similarly, the C1DataCollection can be grouped and filtered
var collection = new ObservableCollection<Item>();
var dc = new C1DataCollection<Item>(collection);
await dc.GroupAsync("Property1");
var collection = new ObservableCollection<Item>();
var dc = new C1DataCollection<Item>(collection);
await dc.FilterAsync("Property1", FilterOperation.Contains, "X");
Virtualizing Data Collections
C1VirtualDataCollection and C1CursorDataCollection are two abstract collection that can be used to implement collection whose items are pulled on demand from an external source, typically a network call.
public class YouTubeCollectionView : C1CursorDataCollection<YouTubeVideo>
{
protected override async Task<Tuple<string, IReadOnlyList<YouTubeVideo>>> GetPageAsync(int startingIndex, string pageToken, int? count = null, IReadOnlyList<SortDescription> sortDescriptions = null, FilterExpression filterExpresssion = null, CancellationToken cancellationToken = default(CancellationToken))
{
var client = new HttpClient();
var response = await client.GetAsync(youtubeUrl, cancellationToken);
var videos = new List<YouTubeVideo>();
var serializer = new DataContractJsonSerializer(typeof(YouTubeSearchResult));
var result = serializer.ReadObject(await response.Content.ReadAsStreamAsync()) as YouTubeSearchResult;
foreach (var item in result.Items)
{
videos.Add(new YouTubeVideo(item));
}
return new Tuple<string, IReadOnlyList<YouTubeVideo>>(result.NextPageToken, videos);
}
}
Composition Data Collections
There are a series of data collections that can be used to compose other collections
- C1PagedDataCollection
- C1SequenceDataCollection
- C1SelectDataCollection
- C1SelectManyDataCollection
- C1CacheDataCollection
- C1EditableDataCollection
- C1SpanDataCollection
Extensions
Built-in extensions ease the creation of data collections from know sources like EntityFrameworkCore, Ado.Net and BindingList.
Adapters
Built-in adapters are used to binding data-collections to native controls.
- C1.Win.DataCollection
- C1.WPF.DataCollection
- C1.Android.DataCollection
- C1.iOS.DataCollection
- C1.Mac.DataCollection
- C1.UWP.DataCollection
Serialization
C1.DataCollection.Serialization includes System.Text.Json converters to serialize and deserialize filter, sort and notification classes to Json.
Resources
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (79)
Showing the top 5 NuGet packages that depend on C1.DataCollection:
| Package | Downloads |
|---|---|
|
C1.DataCollection.BindingList
DataCollection.BindingList allows using any IBindingListView, including DataTable views, as the source of controls supporting C1.DataCollection. Commonly Used Types: C1.DataCollection.BindingList.C1DataCollectionBindingList |
|
|
C1.WPF.DataCollection
This library allow using any C1.DataCollection as the source of any WPF control by implementing ICollectionView. Commonly Used Types: C1.WPF.DataCollection.C1CollectionView C1.WPF.DataCollection.C1CollectionViewDataCollection |
|
|
C1.Android.Grid
The ComponentOne Android FlexGrid is a fast datagrid that provides tabular data editing, sorting, filtering, grouping, and more. |
|
|
C1.Blazor.Core
The Core library includes common classes and controls. |
|
|
C1.Android.Chart
FlexChart is a Cartesian chart control. Supports line, area, scatter, bubble, candle, column, bar and HLOC financial chart types. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.20252.3 | 2,321 | 12/1/2025 |
| 9.0.20252.2 | 709 | 12/1/2025 |
| 9.0.20251.213 | 4,495 | 8/5/2025 |
| 9.0.20251.211 | 719 | 7/11/2025 |
| 9.0.20251.210 | 810 | 5/16/2025 |
| 9.0.20242.209 | 6,154 | 2/11/2025 |
| 9.0.20242.202-preview | 407 | 11/9/2024 |
| 8.0.20242.205 | 6,798 | 12/11/2024 |
| 8.0.20242.201 | 8,010 | 11/2/2024 |
| 8.0.20241.197 | 15,143 | 9/3/2024 |
| 8.0.20241.194 | 3,945 | 7/8/2024 |
| 8.0.20241.192 | 7,574 | 5/29/2024 |
| 8.0.20233.180 | 1,484 | 1/25/2024 |
| 8.0.20233.177 | 1,021 | 11/21/2023 |
| 8.0.20233.176 | 589 | 11/10/2023 |
| 7.0.20233.175 | 13,061 | 11/9/2023 |
| 7.0.20233.174 | 1,438 | 11/8/2023 |
| 1.0.20232.164 | 2,725 | 8/2/2023 |
| 1.0.20232.161 | 10,787 | 6/20/2023 |
| 1.0.20231.144 | 6,042 | 5/11/2023 |
| 1.0.20231.129 | 4,103 | 3/24/2023 |
| 1.0.20231.128 | 1,055 | 3/24/2023 |
| 1.0.20231.127 | 1,095 | 3/24/2023 |
| 1.0.20223.122 | 7,679 | 3/24/2023 |
| 1.0.20223.121 | 112,542 | 1/18/2023 |
| 1.0.20223.116 | 9,633 | 11/30/2022 |
| 1.0.20222.109 | 9,717 | 8/31/2022 |
| 1.0.20222.106 | 47,318 | 7/27/2022 |
| 1.0.20221.66 | 18,255 | 5/5/2022 |
| 1.0.20221.65 | 18,827 | 3/23/2022 |
| 1.0.20213.62 | 17,697 | 1/11/2022 |
| 1.0.20213.61 | 24,451 | 11/5/2021 |
| 1.0.20212.59 | 13,745 | 10/14/2021 |
| 1.0.20212.58 | 1,729 | 9/16/2021 |
| 1.0.20212.57 | 16,089 | 8/5/2021 |
| 1.0.20211.35 | 2,775 | 5/6/2021 |
| 1.0.20211.34 | 15,224 | 4/6/2021 |
| 1.0.20203.32 | 20,550 | 11/10/2020 |
| 1.0.20202.28 | 10,812 | 7/29/2020 |
| 1.0.20201.27 | 3,349 | 6/23/2020 |
| 1.0.20201.25 | 14,512 | 5/21/2020 |
| 1.0.20201.23 | 3,362 | 3/19/2020 |
| 1.0.20201.14 | 8,890 | 3/19/2020 |
| 1.0.20201.8-beta | 1,769 | 2/13/2020 |
| 1.0.20201.7-beta | 1,772 | 1/28/2020 |
| 1.0.20201.4-beta | 1,810 | 12/11/2019 |
| 1.0.20201.3-beta | 3,120 | 12/3/2019 |