Skip to content

IScreen interface

Defined in

Namespace: ReactiveUI Assembly: ReactiveUI.dll Full name: ReactiveUI.IScreen Modifiers: public abstract

Summary

Represents any object capable of hosting its own navigation stack via RoutingState.

Applies to

net10.0, net10.0-android36.0, net10.0-ios26.0, net10.0-macos26.0, net10.0-windows10.0.19041, net10.0-tvos26.0, net10.0-maccatalyst26.0, net10.0-desktop1.0, net10.0-browserwasm1.0, net9.0, net9.0-tvos18.0, net9.0-maccatalyst18.0, net9.0-windows10.0.19041, net9.0-desktop1.0, net9.0-browserwasm1.0, net9.0-macos15.0, net9.0-ios18.0, net9.0-android35.0, net8.0, net8.0-macos14.5, net8.0-macos14.2, net8.0-maccatalyst17.5, net8.0-ios17.5, net8.0-tvos18.0, net8.0-macos15.0, net8.0-ios18.0, net8.0-windows10.0.19041, net8.0-maccatalyst18.0, net8.0-tvos17.2, netstandard2.1, net481, net462

Remarks

Most applications expose a single implementation of IScreen (for example a shell or app view model) that owns the global router. Individual view models can accept an IScreen via constructor injection so they can request navigation without directly referencing UI types.

Examples

<![CDATA[
 public class AppViewModel : ReactiveObject, IScreen
 {
 public RoutingState Router { get; } = new();
 
 public ReactiveCommand<Unit, IRoutableViewModel> ShowSettings { get; }
 
 public AppViewModel()
 {
 ShowSettings = ReactiveCommand.CreateFromObservable(
 () => Router.Navigate.Execute(new SettingsViewModel(this)));
 }
 }
 ]]>

Properties

NameSummary
RouterGets the router associated with this screen. The router coordinates navigation requests for all child view models attached to the screen.