Table of Contents

Class RoutingState

Namespace
ReactiveUI
Assembly
ReactiveUI.dll

RoutingState manages the ViewModel Stack and allows ViewModels to navigate to other ViewModels.

public class RoutingState : ReactiveObject, IReactiveNotifyPropertyChanged<IReactiveObject>, IHandleObservableErrors, IReactiveObject, INotifyPropertyChanged, INotifyPropertyChanging, IEnableLogger
Inheritance
RoutingState
Implements
Inherited Members
Extension Methods
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)

Constructors

RoutingState(IScheduler?)

Initializes a new instance of the RoutingState class.

public RoutingState(IScheduler? scheduler = null)

Parameters

scheduler IScheduler

A scheduler for where to send navigation changes to.

Properties

CurrentViewModel

Gets or sets the current view model which is to be shown for the Routing.

[JsonIgnore]
public IObservable<IRoutableViewModel> CurrentViewModel { get; protected set; }

Property Value

IObservable<IRoutableViewModel>

Navigate

Gets or sets a command that navigates to the a new element in the stack - the Execute parameter must be a ViewModel that implements IRoutableViewModel.

[JsonIgnore]
public ReactiveCommand<IRoutableViewModel, IRoutableViewModel> Navigate { get; protected set; }

Property Value

ReactiveCommand<IRoutableViewModel, IRoutableViewModel>

NavigateAndReset

Gets or sets a command that navigates to a new element and resets the navigation stack (i.e. the new ViewModel will now be the only element in the stack) - the Execute parameter must be a ViewModel that implements IRoutableViewModel.

[JsonIgnore]
public ReactiveCommand<IRoutableViewModel, IRoutableViewModel> NavigateAndReset { get; protected set; }

Property Value

ReactiveCommand<IRoutableViewModel, IRoutableViewModel>

NavigateBack

Gets or sets a command which will navigate back to the previous element in the stack.

[JsonIgnore]
public ReactiveCommand<Unit, IRoutableViewModel> NavigateBack { get; protected set; }

Property Value

ReactiveCommand<Unit, IRoutableViewModel>

NavigationChanged

Gets or sets an observable which will signal when the Navigation changes.

[JsonIgnore]
public IObservable<IChangeSet<IRoutableViewModel>> NavigationChanged { get; protected set; }

Property Value

IObservable<IChangeSet<IRoutableViewModel>>

NavigationStack

Gets or sets the current navigation stack, the last element in the collection being the currently visible ViewModel.

[JsonRequired]
public ObservableCollection<IRoutableViewModel> NavigationStack { get; set; }

Property Value

ObservableCollection<IRoutableViewModel>