ReactiveObject Class

Summary

ReactiveObject is the base object for ViewModel classes, and it implements INotifyPropertyChanged. In addition, ReactiveObject provides Changing and Changed Observables to monitor object changes.
graph TD Base0["object"]-->Type Interface0["IReactiveNotifyPropertyChanged<IReactiveObject>"]-.->Type Interface1["IHandleObservableErrors"]-.->Type click Interface1 "/api/ReactiveUI/IHandleObservableErrors" Interface2["IReactiveObject"]-.->Type click Interface2 "/api/ReactiveUI/IReactiveObject" Interface3["INotifyPropertyChanged"]-.->Type Interface4["INotifyPropertyChanging"]-.->Type click Interface4 "/api/ReactiveUI/INotifyPropertyChanging" Interface5["IEnableLogger"]-.->Type Type["ReactiveObject"] class Type type-node Type-->Derived0["RoutedViewHostLegacy"] click Derived0 "/api/ReactiveUI/RoutedViewHostLegacy" Type-->Derived1["RoutingState"] click Derived1 "/api/ReactiveUI/RoutingState" Type-->Derived2["ViewModelViewHostLegacy"] click Derived2 "/api/ReactiveUI/ViewModelViewHostLegacy"

Syntax

[DataContract]
public class ReactiveObject : IReactiveNotifyPropertyChanged<IReactiveObject>, 
    IHandleObservableErrors, IReactiveObject, INotifyPropertyChanged, INotifyPropertyChanging, 
    IEnableLogger

Attributes

Type Description
DataContract

Events

Name Type Summary
PropertyChanged PropertyChangedEventHandler
PropertyChanging PropertyChangingEventHandler
An event that is triggered before a property's value is going to change.

Properties

Name Value Summary
Changed IObservable<IReactivePropertyChangedEventArgs<IReactiveObject>>
Represents an Observable that fires *after* a property has changed.
Changing IObservable<IReactivePropertyChangedEventArgs<IReactiveObject>>
Represents an Observable that fires *before* a property is about to be changed.
ThrownExceptions IObservable<Exception>
Fires whenever an exception would normally terminate ReactiveUI internal state.

Methods

Name Value Summary
AreChangeNotificationsEnabled() bool
Determines if change notifications are enabled or not.
DelayChangeNotifications() IDisposable
Delays notifications until the return IDisposable is disposed.
SuppressChangeNotifications() IDisposable
When this method is called, an object will not fire change notifications (neither traditional nor Observable notifications) until the return value is disposed.

Extension Methods

Name Value Summary
AutoPersist<ReactiveObject, TDontCare>(Func<ReactiveObject, IObservable<Unit>>, IObservable<TDontCare>, TimeSpan?) IDisposable
AutoPersist allows you to automatically call a method when an object has changed, throttling on a certain interval. Note that this object must mark its persistable properties via the [DataMember] attribute. Changes to properties not marked with DataMember will not trigger the object to be saved.
AutoPersist<ReactiveObject>(Func<ReactiveObject, IObservable<Unit>>, TimeSpan?) IDisposable
AutoPersist allows you to automatically call a method when an object has changed, throttling on a certain interval. Note that this object must mark its persistable properties via the [DataMember] attribute. Changes to properties not marked with DataMember will not trigger the object to be saved.
BindCommand<ReactiveObject, TViewModel, TProp, TControl, TParam>(TViewModel, Expression<Func<TViewModel, TProp>>, Expression<Func<ReactiveObject, TControl>>, Expression<Func<TViewModel, TParam>>, string) IReactiveBinding<TView, TViewModel, TProp>
Bind a command from the ViewModel to an explicitly specified control on the View.
BindCommand<ReactiveObject, TViewModel, TProp, TControl, TParam>(TViewModel, Expression<Func<TViewModel, TProp>>, Expression<Func<ReactiveObject, TControl>>, IObservable<TParam>, string) IReactiveBinding<TView, TViewModel, TProp>
Bind a command from the ViewModel to an explicitly specified control on the View.
BindCommand<ReactiveObject, TViewModel, TProp, TControl>(TViewModel, Expression<Func<TViewModel, TProp>>, Expression<Func<ReactiveObject, TControl>>, string) IReactiveBinding<TView, TViewModel, TProp>
Bind a command from the ViewModel to an explicitly specified control on the View.
ObservableForProperty<ReactiveObject, TValue, TRet>(Expression<Func<ReactiveObject, TValue>>, Func<TValue, TRet>, bool) IObservable<TRet>
ObservableForProperty returns an Observable representing the property change notifications for a specific property on a ReactiveObject, running the IObservedChange through a Selector function.
ObservableForProperty<ReactiveObject, TValue>(Expression<Func<ReactiveObject, TValue>>, bool, bool) IObservable<IObservedChange<TSender, TValue>>
ObservableForProperty returns an Observable representing the property change notifications for a specific property on a ReactiveObject. This method (unlike other Observables that return IObservedChange) guarantees that the Value property of the IObservedChange is set.
RaiseAndSetIfChanged<ReactiveObject, TRet>(TRet, TRet, string) TRet
RaiseAndSetIfChanged fully implements a Setter for a read-write property on a ReactiveObject, using CallerMemberName to raise the notification and the ref to the backing field to set the property.
RaisePropertyChanged<ReactiveObject>(string) void
Use this method in your ReactiveObject classes when creating custom properties where raiseAndSetIfChanged doesn't suffice.
RaisePropertyChanging<ReactiveObject>(string) void
Use this method in your ReactiveObject classes when creating custom properties where raiseAndSetIfChanged doesn't suffice.
SubscribeToExpressionChain<ReactiveObject, TValue>(Expression, bool, bool) IObservable<IObservedChange<TSender, TValue>>
Creates a observable which will subscribe to the each property and sub property specified in the Expression. eg It will subscribe to x => x.Property1.Property2.Property3 each property in the lambda expression. It will then provide updates to the last value in the chain.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Expression<Func<ReactiveObject, T11>>, Expression<Func<ReactiveObject, T12>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, IObservedChange<ReactiveObject, T8>, IObservedChange<ReactiveObject, T9>, IObservedChange<ReactiveObject, T10>, IObservedChange<ReactiveObject, T11>, IObservedChange<ReactiveObject, T12>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Expression<Func<ReactiveObject, T11>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, IObservedChange<ReactiveObject, T8>, IObservedChange<ReactiveObject, T9>, IObservedChange<ReactiveObject, T10>, IObservedChange<ReactiveObject, T11>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, IObservedChange<ReactiveObject, T8>, IObservedChange<ReactiveObject, T9>, IObservedChange<ReactiveObject, T10>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, IObservedChange<ReactiveObject, T8>, IObservedChange<ReactiveObject, T9>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, IObservedChange<ReactiveObject, T8>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, IObservedChange<ReactiveObject, T7>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, IObservedChange<ReactiveObject, T6>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4, T5>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, IObservedChange<ReactiveObject, T5>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3, T4>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, IObservedChange<ReactiveObject, T4>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2, T3>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, IObservedChange<ReactiveObject, T3>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1, T2>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Func<IObservedChange<ReactiveObject, T1>, IObservedChange<ReactiveObject, T2>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAny<ReactiveObject, TRet, T1>(Expression<Func<ReactiveObject, T1>>, Func<IObservedChange<ReactiveObject, T1>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Expression, Func<IObservedChange<ReactiveObject, object>, IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyDynamic<ReactiveObject, TRet>(Expression, Func<IObservedChange<ReactiveObject, object>, TRet>) IObservable<TRet>
WhenAny allows you to observe whenever one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Expression<Func<ReactiveObject, IObservable<T8>>>, Expression<Func<ReactiveObject, IObservable<T9>>>, Expression<Func<ReactiveObject, IObservable<T10>>>, Expression<Func<ReactiveObject, IObservable<T11>>>, Expression<Func<ReactiveObject, IObservable<T12>>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Expression<Func<ReactiveObject, IObservable<T8>>>, Expression<Func<ReactiveObject, IObservable<T9>>>, Expression<Func<ReactiveObject, IObservable<T10>>>, Expression<Func<ReactiveObject, IObservable<T11>>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Expression<Func<ReactiveObject, IObservable<T8>>>, Expression<Func<ReactiveObject, IObservable<T9>>>, Expression<Func<ReactiveObject, IObservable<T10>>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Expression<Func<ReactiveObject, IObservable<T8>>>, Expression<Func<ReactiveObject, IObservable<T9>>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Expression<Func<ReactiveObject, IObservable<T8>>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Expression<Func<ReactiveObject, IObservable<T7>>>, Func<T1, T2, T3, T4, T5, T6, T7, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Expression<Func<ReactiveObject, IObservable<T6>>>, Func<T1, T2, T3, T4, T5, T6, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4, T5>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Expression<Func<ReactiveObject, IObservable<T5>>>, Func<T1, T2, T3, T4, T5, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3, T4>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Expression<Func<ReactiveObject, IObservable<T4>>>, Func<T1, T2, T3, T4, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2, T3>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Expression<Func<ReactiveObject, IObservable<T3>>>, Func<T1, T2, T3, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet, T1, T2>(Expression<Func<ReactiveObject, IObservable<T1>>>, Expression<Func<ReactiveObject, IObservable<T2>>>, Func<T1, T2, TRet>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyObservable<ReactiveObject, TRet>(Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>, Expression<Func<ReactiveObject, IObservable<TRet>>>) IObservable<TRet>
WhenAnyValue<ReactiveObject, T1, T2, T3, T4, T5, T6, T7>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>) IObservable<Tuple<T1, T2, T3, T4, T5, T6, T7>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, T1, T2, T3, T4, T5, T6>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>) IObservable<Tuple<T1, T2, T3, T4, T5, T6>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, T1, T2, T3, T4, T5>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>) IObservable<Tuple<T1, T2, T3, T4, T5>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, T1, T2, T3, T4>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>) IObservable<Tuple<T1, T2, T3, T4>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, T1, T2, T3>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>) IObservable<Tuple<T1, T2, T3>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, T1, T2>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>) IObservable<Tuple<T1, T2>>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Expression<Func<ReactiveObject, T11>>, Expression<Func<ReactiveObject, T12>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Expression<Func<ReactiveObject, T11>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Expression<Func<ReactiveObject, T10>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Expression<Func<ReactiveObject, T9>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7, T8>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Expression<Func<ReactiveObject, T8>>, Func<T1, T2, T3, T4, T5, T6, T7, T8, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6, T7>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Expression<Func<ReactiveObject, T7>>, Func<T1, T2, T3, T4, T5, T6, T7, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5, T6>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Expression<Func<ReactiveObject, T6>>, Func<T1, T2, T3, T4, T5, T6, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4, T5>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Expression<Func<ReactiveObject, T5>>, Func<T1, T2, T3, T4, T5, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3, T4>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Expression<Func<ReactiveObject, T4>>, Func<T1, T2, T3, T4, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2, T3>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Expression<Func<ReactiveObject, T3>>, Func<T1, T2, T3, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1, T2>(Expression<Func<ReactiveObject, T1>>, Expression<Func<ReactiveObject, T2>>, Func<T1, T2, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet, T1>(Expression<Func<ReactiveObject, T1>>, Func<T1, TRet>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of one or more properties on an object have changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.
WhenAnyValue<ReactiveObject, TRet>(Expression<Func<ReactiveObject, TRet>>) IObservable<TRet>
WhenAnyValue allows you to observe whenever the value of a property on an object has changed, providing an initial value when the Observable is set up, unlike ObservableForProperty(). Use this method in constructors to set up bindings between properties that also need an initial setup.