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" />
paket add CollectionTracking.DynamicData --version 1.0.1
#r "nuget: CollectionTracking.DynamicData, 1.0.1"
// Install CollectionTracking.DynamicData as a Cake Addin #addin nuget:?package=CollectionTracking.DynamicData&version=1.0.1 // Install CollectionTracking.DynamicData as a Cake Tool #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 CollectionOperation
s 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. |
.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.