Skip to content

IRoutableViewModel interface

Defined in

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

Summary

Defines the minimum contract for view models that participate in RoutingState navigation.

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

Class hierarchy
classDiagram
class IRoutableViewModel
class IReactiveObject {
    <>
}
IReactiveObject <|.. IRoutableViewModel
class INotifyPropertyChanged {
    <>
}
INotifyPropertyChanged <|.. IRoutableViewModel
class INotifyPropertyChanging {
    <>
}
INotifyPropertyChanging <|.. IRoutableViewModel
class IEnableLogger {
    <>
}
IEnableLogger <|.. IRoutableViewModel

Implements: IReactiveObject, INotifyPropertyChanged, INotifyPropertyChanging, IEnableLogger

Remarks

Routable view models expose a user-readable UrlPathSegment used for diagnostics / navigation breadcrumbs and keep a reference to the owning IScreen so that downstream navigation commands can be issued.

Examples

<![CDATA[
 public class SettingsViewModel : ReactiveObject, IRoutableViewModel
 {
 public SettingsViewModel(IScreen hostScreen) => HostScreen = hostScreen;
 
 public string? UrlPathSegment => "settings";
 
 public IScreen HostScreen { get; }
 }
 ]]>

Properties

NameSummary
UrlPathSegmentGets a string token representing the current view model, such as "login" or "user".
HostScreenGets the [IScreen](# instance that hosts this view model. Use this reference to access the shared [RoutingState](# when chaining navigation from child...

Extension members