ObservableCollections.ModernUwp
1.0.2
dotnet add package ObservableCollections.ModernUwp --version 1.0.2
NuGet\Install-Package ObservableCollections.ModernUwp -Version 1.0.2
<PackageReference Include="ObservableCollections.ModernUwp" Version="1.0.2" />
<PackageVersion Include="ObservableCollections.ModernUwp" Version="1.0.2" />
<PackageReference Include="ObservableCollections.ModernUwp" />
paket add ObservableCollections.ModernUwp --version 1.0.2
#r "nuget: ObservableCollections.ModernUwp, 1.0.2"
#:package ObservableCollections.ModernUwp@1.0.2
#addin nuget:?package=ObservableCollections.ModernUwp&version=1.0.2
#tool nuget:?package=ObservableCollections.ModernUwp&version=1.0.2
ObservableCollections.ModernUwp
Modern UWP adapters for ObservableCollections that expose IBindableObservableVector instead of
marshalling System.Collections.Specialized.NotifyCollectionChangedEventArgs across the WinRT ABI.
The package assembly is AnyCPU/MSIL and can be consumed by x86, x64, and ARM64 applications.
Why
Custom INotifyCollectionChanged implementations can fail in modern UWP because the BCL wraps
NewItems and OldItems in internal ReadOnlyList types that CsWinRT cannot expose as
IBindableVector. Native VectorChanged events carry only CollectionChange and Index and avoid
that CCW path.
API mapping
| ObservableCollections | Modern UWP |
|---|---|
ToNotifyCollectionChangedSlim() |
ToNotifyCollectionChangedSlimUwp() |
ToNotifyCollectionChanged() |
ToNotifyCollectionChangedUwp() |
CreateView(...).ToNotifyCollectionChanged() |
CreateView(...).ToNotifyCollectionChangedUwp() |
ToWritableNotifyCollectionChanged() |
ToWritableNotifyCollectionChangedUwp() |
All vector views implement IDisposable; dispose them when the binding owner is released.
Coverage
ObservableList<T>slim and writable adapters.- All
IObservableCollection<T>implementations, including list, dictionary, hash set, queue, stack, and ring buffer, through the generic source adapter. - Filtered
ISynchronizedView<TSource, TView>and writable synchronized views. - Optional
DispatcherQueuedispatch for UI-thread vector notifications.
R3 observable-stream extensions are not duplicated: they consume ObservableCollections' generic
events in managed code and do not marshal NotifyCollectionChangedEventArgs through WinRT.
Single-item add, remove, and replace operations produce ItemInserted, ItemRemoved, and
ItemChanged. A single-item move produces ItemRemoved followed by ItemInserted, because
IBindableObservableVector has no native move notification. Range, sort, reverse, filter, and
reset operations produce Reset.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows10.0.26100 is compatible. |
-
net10.0-windows10.0.26100
- ObservableCollections (>= 3.3.4)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Emit granular move notifications and keep filtered writable source indices synchronized.