CollectionTracking.DynamicData
1.0.1
dotnet add package CollectionTracking.DynamicData --version 1.0.1
NuGet\Install-Package CollectionTracking.DynamicData -Version 1.0.1
<PackageReference Include="CollectionTracking.DynamicData" Version="1.0.1" />
<PackageVersion Include="CollectionTracking.DynamicData" Version="1.0.1" />
<PackageReference Include="CollectionTracking.DynamicData" />
paket add CollectionTracking.DynamicData --version 1.0.1
#r "nuget: CollectionTracking.DynamicData, 1.0.1"
#:package CollectionTracking.DynamicData@1.0.1
#addin nuget:?package=CollectionTracking.DynamicData&version=1.0.1
#tool nuget:?package=CollectionTracking.DynamicData&version=1.0.1
CollectionTracking
Goal
This package was developed to interpret a series of immutable lists (from a business layer) as one mutable lists (in a presentation layer).
In other words, convert IObservable<IEnumerable<T>> to ObservableCollection<T>.
Usage
1. Get the differences
Use CollectionTracker.GetOperations to compare 2 enumerables.
using CollectionTracking;
// (...)
var source = new[] { "B", "C", "A" };
var target = new[] { "A", "B", "C", "D" };
var operations = CollectionTracker.GetOperations(source, target);
foreach (var operation in operations)
{
Console.WriteLine(operation);
}
This code prints the following.
Move 'A' from [2] to [0]
Insert 'D' at [3]
2. Use the differences to modify an IList
Use CollectionTracker.ApplyOperations to apply a series of CollectionOperations on an IList.
var list = source.ToList();
list.ApplyOperations(operations);
This code initializes the list variable with the content being [BCA].
The ApplyOperations modifies that list so that it becomes [ABCD].
This is very useful when manipulating an ObservableCollection bound to a UI component (such as ItemsControl.ItemsSource).
CollectionTracking.DynamicData
Goal
Expose conversion methods to relevant types from the DynamicData library.
Usage
using CollectionTracking;
using DynamicData;
// (...)
var source = new[] { "B", "C", "A" };
var target = new[] { "A", "B", "C", "D" };
var operations = CollectionTracker.GetOperations(source, target);
// Convert all changes.
IChangeSet<string> changeSet = operations.ToChangeSet();
// Convert a single change.
Change<string> change = operations[0].ToChange();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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
- CollectionTracking (>= 1.0.0)
- DynamicData (>= 7.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.