GitHub is here: https://github.com/anagram4wander/VirtualizingObservableCollection
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).
See the version list below for details.
Install-Package VirtualizingObservableCollection -Version 0.9.1
dotnet add package VirtualizingObservableCollection --version 0.9.1
<PackageReference Include="VirtualizingObservableCollection" Version="0.9.1" />
paket add VirtualizingObservableCollection --version 0.9.1
Rewrote the core page/offset getter - works much better with large updates now.
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.