Table of Contents

Interface IReactiveCommand<TParam, TResult>

Namespace
ReactiveUI
Assembly
ReactiveUI.dll

Encapsulates a user action behind a reactive interface. This is for interop inside for the command binding. Not meant for external use due to the fact it doesn't implement ICommand to force the user to favor the Reactive style command execution.

public interface IReactiveCommand<in TParam, out TResult> : IObservable<TResult>, IReactiveCommand, IDisposable, IHandleObservableErrors

Type Parameters

TParam

The type of parameter values passed in during command execution.

TResult

The type of the values that are the result of command execution.

Inherited Members

Remarks

This interface extends IReactiveCommand and adds generic type parameters for the parameter values passed into command execution, and the return values of command execution.

Methods

Execute()

Gets an observable that, when subscribed, executes this command.

IObservable<out TResult> Execute()

Returns

IObservable<TResult>

An observable that will tick the single result value if and when it becomes available.

Remarks

Invoking this method will return a cold (lazy) observable that, when subscribed, will execute the logic encapsulated by the command. It is worth restating that the returned observable is lazy. Nothing will happen if you call Execute and neglect to subscribe (directly or indirectly) to the returned observable.

If no parameter value is provided, a default value of type TParam will be passed into the execution logic.

Any number of subscribers can subscribe to a given execution observable and the execution logic will only run once. That is, the result is broadcast to those subscribers.

In those cases where execution fails, there will be no result value. Instead, the failure will tick through the ThrownExceptions observable.

Execute(TParam)

Gets an observable that, when subscribed, executes this command.

IObservable<out TResult> Execute(TParam parameter)

Parameters

parameter TParam

The parameter to pass into command execution.

Returns

IObservable<TResult>

An observable that will tick the single result value if and when it becomes available.

Remarks

Invoking this method will return a cold (lazy) observable that, when subscribed, will execute the logic encapsulated by the command. It is worth restating that the returned observable is lazy. Nothing will happen if you call Execute and neglect to subscribe (directly or indirectly) to the returned observable.

If no parameter value is provided, a default value of type TParam will be passed into the execution logic.

Any number of subscribers can subscribe to a given execution observable and the execution logic will only run once. That is, the result is broadcast to those subscribers.

In those cases where execution fails, there will be no result value. Instead, the failure will tick through the ThrownExceptions observable.