Rambla.WinUI
0.6.0
dotnet add package Rambla.WinUI --version 0.6.0
NuGet\Install-Package Rambla.WinUI -Version 0.6.0
<PackageReference Include="Rambla.WinUI" Version="0.6.0" />
<PackageVersion Include="Rambla.WinUI" Version="0.6.0" />
<PackageReference Include="Rambla.WinUI" />
paket add Rambla.WinUI --version 0.6.0
#r "nuget: Rambla.WinUI, 0.6.0"
#:package Rambla.WinUI@0.6.0
#addin nuget:?package=Rambla.WinUI&version=0.6.0
#tool nuget:?package=Rambla.WinUI&version=0.6.0
Rambla.WinUI
WinUI 3 dispatcher adapter for Rambla.
It marshals coalesced state notifications to the UI thread through the Windows
App SDK DispatcherQueue, at low priority so a high-frequency feed does not
starve input or rendering.
Usage
Install the scheduler once during application startup, on the WinUI UI thread:
using Rambla.WinUI;
// App.xaml.cs, after the UI thread exists
DispatcherStateScheduler.InstallAsDefault();
Every RamblaState created without an explicit scheduler now flushes onto that
UI queue. For a sustained stream, install the throttled variant and retain the
returned scheduler until shutdown:
_scheduler = DispatcherStateScheduler.InstallThrottledAsDefault(60);
The returned ThrottlingStateScheduler owns a timer. Dispose it after stopping
the background writers.
Experimental data virtualization
VirtualizingList<T> is a read-only IList / IItemsRangeInfo items source for
large WinUI ListView data sets. Its Count is the source's complete logical
count, so the scroll bar continues to represent all records; it loads only the
reported viewport and a nearby bounded buffer.
var rows = new VirtualizingList<QuoteRow>(
api,
index => QuoteRow.Loading(index),
new DispatcherStateScheduler(DispatcherQueue),
prefetchBefore: 200,
prefetchAfter: 200,
maximumCachedItems: 420);
quotesListView.ItemsSource = rows;
api implements IAsyncRangeSource<QuoteRow> and fetches exactly the requested
logical range. Its Count is fixed while the list is bound. The three numeric
arguments are consumer policy, not fixed library limits: choose a buffer based
on fetch latency and item weight. Set maximumCachedItems to at least the
visible rows plus both buffers; if it is smaller, visible rows are retained and
the buffer is trimmed. Use a fixed-height item template when the scrollbar needs
an exact index-to-position mapping. See the included
Rambla.Demo.WinUI.Virtualization
proof of concept for a 500,000-row source.
Links
- Repository & docs: https://github.com/nicoseijas/Rambla
- Frozen semantics: https://github.com/nicoseijas/Rambla/blob/main/SEMANTICS.md
Released under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows10.0.19041 is compatible. |
-
net10.0-windows10.0.19041
- Microsoft.WindowsAppSDK (>= 1.8.260804001)
- Rambla (>= 0.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0 | 163 | 9/7/2026 |