C1.DataCollection 1.0.20222.109

.NET Standard 1.1
NuGet\Install-Package C1.DataCollection -Version 1.0.20222.109
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
dotnet add package C1.DataCollection --version 1.0.20222.109
<PackageReference Include="C1.DataCollection" Version="1.0.20222.109" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add C1.DataCollection --version 1.0.20222.109
#r "nuget: C1.DataCollection, 1.0.20222.109"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install C1.DataCollection as a Cake Addin
#addin nuget:?package=C1.DataCollection&version=1.0.20222.109

// Install C1.DataCollection as a Cake Tool
#tool nuget:?package=C1.DataCollection&version=1.0.20222.109

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

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.

Serialization

C1.DataCollection.Serialization includes System.Text.Json converters to serialize and deserialize filter, sort and notification classes to Json.

Resources

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows
.NET Core netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1
.NET Standard netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1
.NET Framework net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48
MonoAndroid monoandroid
MonoMac monomac
MonoTouch monotouch
Tizen tizen30 tizen40 tizen60
Universal Windows Platform uap uap10.0
Windows Phone wpa81
Windows Store netcore netcore45 netcore451
Xamarin.iOS xamarinios
Xamarin.Mac xamarinmac
Xamarin.TVOS xamarintvos
Xamarin.WatchOS xamarinwatchos
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (53)

Showing the top 5 NuGet packages that depend on C1.DataCollection:

Package Downloads
C1.Android.Chart

FlexChart is a Cartesian chart control. Supports line, area, scatter, bubble, candle, column, bar and HLOC financial chart types.

C1.Xamarin.Forms.Grid

FlexGrid is a data grid which displays the information in a tabular view.

C1.Xamarin.Forms.Chart

FlexChart is a Cartesian chart control. Supports line, area, scatter, bubble, candle, column, bar and HLOC financial chart types.

C1.iOS.Chart

FlexChart is a Cartesian chart control. Supports line, area, scatter, bubble, candle, column, bar and HLOC financial chart types.

C1.Xamarin.Forms.Input

Input provides specialized editors including AutoComplete, combo box, masked text, and a custom drop-down.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.20222.109 468 8/31/2022
1.0.20222.106 1,282 7/27/2022
1.0.20221.66 4,558 5/5/2022
1.0.20221.65 2,714 3/23/2022
1.0.20213.62 1,950 1/11/2022
1.0.20213.61 5,568 11/5/2021
1.0.20212.59 5,220 10/14/2021
1.0.20212.58 551 9/16/2021
1.0.20212.57 6,451 8/5/2021
1.0.20211.35 1,012 5/6/2021
1.0.20211.34 6,177 4/6/2021
1.0.20203.32 8,511 11/10/2020
1.0.20202.28 4,743 7/29/2020
1.0.20201.27 1,602 6/23/2020
1.0.20201.25 5,622 5/21/2020
1.0.20201.23 1,607 3/19/2020
1.0.20201.14 4,250 3/19/2020
1.0.20201.8-beta 810 2/13/2020
1.0.20201.7-beta 795 1/28/2020
1.0.20201.4-beta 910 12/11/2019
1.0.20201.3-beta 1,640 12/3/2019