Skip to content

IActivationForViewFetcher interface

Defined in

Namespace: ReactiveUI Assembly: ReactiveUI.Core.dll Full name: ReactiveUI.IActivationForViewFetcher Modifiers: public abstract

Summary

         Implement this interface to override how ReactiveUI determines when a
         View is activated or deactivated. This is usually only used when porting
         ReactiveUI to a new UI framework.
         

Applies to

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

Remarks

Activation fetchers translate framework-specific signals (such as page navigation, focus, or visibility changes) into the cross-platform IActivatableView semantics used by ReactiveUI. Multiple fetchers can exist, each advertising an affinity for a given view type.

Examples

<![CDATA[
 public sealed class WinFormsActivationFetcher : IActivationForViewFetcher
 {
 public int GetAffinityForView(Type view) => typeof(Form).IsAssignableFrom(view) ? 10 : 0;
 
 public IObservable<bool> GetActivationForView(IActivatableView view)
 {
 var form = (Form)view;
 return Observable.Merge(
 Observable.FromEventPattern(form, nameof(form.Load)).Select(_ => true),
 Observable.FromEventPattern(form, nameof(form.FormClosed)).Select(_ => false));
 }
 }
 ]]>

Methods

NameSummary
GetAffinityForViewDetermines the priority that the Activation View Fetcher will be able to process the view type. 0 means it cannot activate the View, value larger than 0 ...
GetActivationForViewGets a Observable which will activate the View. This is called after the GetAffinityForView method.