VirtualizingObservableCollection 1.0.2

Virtualizing Observable Collection


GitHub is here:

There are no performant large data set observable collections that support write operations in .NET, so we wrote the VirtualizingObservableCollection, which does the following:
◾Implements the same interfaces as ObsevableCollection<T> so you can use it anywhere you’d use an ObsevableCollection<T> – no need to change any of your existing controls.
◾Supports true multi-user read/write without resets (maximizing performance for large-scale concurrency scenarios).
◾Manages memory on its own so it never runs out of memory, no matter how large the data set is (especially important for mobile devices).
◾Natively works asynchronously – great for slow network connections and occasionally-connected models.
◾Works great out of the box, but is flexible and extendable enough to customize for your needs.
◾Has a data access performance curve nearly as good as the regular ObsevableCollection – the cost of using it is negligible.
◾Works in any .NET project because it’s implemented in a Portable Code Library (PCL).

There is a newer version of this package available.
See the version list below for details.
Install-Package VirtualizingObservableCollection -Version 1.0.2
dotnet add package VirtualizingObservableCollection --version 1.0.2
<PackageReference Include="VirtualizingObservableCollection" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add VirtualizingObservableCollection --version 1.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Fixed broken count on non-async version.

Added base paged source, including MakeASync and MakeSync versions.

Fixed count bug when Async and the count returns instantly.

Fixed all Async to Sync context bugs (wrapped all .Results in Task.Run).

Greatly optimized if you do a lot of Inserts or Removes at the head of the VOC.

Implemented BulkMode:-

  : do lots of add/insert/removes
} // Now does a reset.

Rewrote the core page/offset getter - works much better with large updates now.

Added AddRange.

Fixed a couple of ASync bugs related to cancelation.

Implemented Clear - so it does a reset/get count.
Minor change to Async GetPlaceHold to pass in the index

Re-worked the Add/Append implementation to create new pages..

Async seems stable now: Implement IPagedSourceProviderAsync<T> and pass that to the PagingManager constructor.

Changed rest of the DateTimes to Object so you can implement any type of IPageExpiryComparer you want.


This package has no dependencies.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
1.2.0 10,438 3/31/2015
1.1.3 445 3/11/2015
1.0.2 403 2/25/2015
1.0.1 409 2/24/2015
0.9.3 309 2/20/2015
0.9.1 318 2/17/2015
0.9.0 331 2/6/2015