Denxorz.ObservableCollectionWithAddRange
2.1.3
dotnet add package Denxorz.ObservableCollectionWithAddRange --version 2.1.3
NuGet\Install-Package Denxorz.ObservableCollectionWithAddRange -Version 2.1.3
<PackageReference Include="Denxorz.ObservableCollectionWithAddRange" Version="2.1.3" />
paket add Denxorz.ObservableCollectionWithAddRange --version 2.1.3
#r "nuget: Denxorz.ObservableCollectionWithAddRange, 2.1.3"
// Install Denxorz.ObservableCollectionWithAddRange as a Cake Addin #addin nuget:?package=Denxorz.ObservableCollectionWithAddRange&version=2.1.3 // Install Denxorz.ObservableCollectionWithAddRange as a Cake Tool #tool nuget:?package=Denxorz.ObservableCollectionWithAddRange&version=2.1.3
ObservableCollectionWithAddRange
What does it do?
ObservableCollectionWithAddRange adds the AddRange and ClearAndAddRange methods to the ObservableCollection.
This can be used to speed up operations with WPF collection bindings that handle a lot of changes.
This package is based on the following articles:
Examples
What it looks like with the default System.Collections.ObjectModel.ObservableCollection:
var collection = new ObservableCollection<int> { 1, 2 };
collection.CollectionChanged += (s, e) => Console.WriteLine($"CollectionChanged: {e.Action}");
// Array with new items
var newItems = new[] { 3, 4, 5 };
// Replace all items by new items
collection.Clear();
foreach (var item in newItems)
{
collection.Add(item);
}
// Output:
// CollectionChanged: Reset
// CollectionChanged: Add
// CollectionChanged: Add
// CollectionChanged: Add
What it looks like with ObservableCollectionWithAddRange:
// Denxorz.ObservableCollectionWithAddRange
var collection = new ObservableCollectionWithAddRange<int> { 1, 2 };
collection.CollectionChanged += (s, e) => Console.WriteLine($"CollectionChanged: {e.Action}");
// Array with new items
var newItems = new[] { 3, 4, 5 };
// Replace all items by new items
collection.ClearAndAddRange(newItems);
// Output:
// CollectionChanged: Reset
Tools and Products Used
Versions & Release Notes
version 2.1.2: Added .NET 8.0
version 2.1.1: Added .NET 5.0
version 2.1: Added .NET Framework 4.5.2 again
version 2.0: Converted to .NET Standard 2.0
version 1.0: First version (.NET Framework 4.5.2)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. 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 is compatible. 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 | net452 is compatible. net46 was computed. 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. |
-
.NETFramework 4.5.2
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
net5.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.