Skip to content

Platforms

ReactiveUI's core package holds view models, commands, routing and activation. None of it depends on a UI framework. A platform package connects that core to one UI framework. It adds:

  • base classes for your windows, pages and controls, so each one is an IViewFor<TViewModel> with a ViewModel property the framework can bind to;
  • hosts that show a view for a view model: a routed host that follows a router's navigation stack, and a view model host that shows whatever view model you give it;
  • an activation fetcher, which tells WhenActivated when a view appears on screen and when it leaves;
  • a main-thread sequencer for the framework's UI thread. This gets results to the UI on the right thread (see Scheduling);
  • a With<Platform>() call for the app builder that registers all of the above.

Each page below starts from a runnable example app. Most examples build on any operating system. The Windows ones build only on Windows, the Apple ones build only on Windows or macOS, and the Android one runs on a device or an emulator.

PlatformPackageExample app
WPFReactiveUI.WPF, plus ReactiveUI.Blend and ReactiveUI.DrawingA university grade book
Windows FormsReactiveUI.WinFormsA library loans desk
WinUIReactiveUI.WinUIA weather-station dashboard
.NET MAUIReactiveUI.MauiA recipe book
BlazorReactiveUI.BlazorA to-do list
AndroidReactiveUI.AndroidXA school timetable
Apple platformsReactiveUI (ios, maccatalyst, macos, tvos)A library catalog

Each package also ships as ReactiveUI.<Platform>.Reactive, built from the same source for apps that use System.Reactive.

To add a package to a project, follow Installation for your platform.