Runic.Navigation

Version 0.7.0-preview.5, target framework net10.0. Read from the published package.

Runic.Navigation

INavigationDepartureGuard interface

Can veto a transition that retains or retires an entry.

INavigationEntry interface

The content-type-independent view of a NavigationEntry, for hosts that present a region without knowing its content type. Only NavigationEntry implements it.

INavigationInitialize interface

Initializes a new entry once, before it first becomes current.

INavigationInitialize<TInput> interface

Initializes a new entry created with typed input by NavigationTarget.Create or NavigationTarget.Create.

INavigationInputInitialize interface

The non-generic base of every INavigationInitialize, so the navigator can recognize content that initializes with input through an interface check. Implement INavigationInitialize instead.

INavigationPresentation interface

A presentation of a navigator's content, attached with RunicNavigator.AttachPresentation. Presentation integrations, such as the Runic Views runtime, implement it; applications do not.

INavigationRegion interface

The content-type-independent view of a NavigationRegion, for hosts that present a region without knowing its content type. Only NavigationRegion implements it.

INavigationResume interface

Runs when a retained entry becomes current again.

INavigationTarget<TContent> interface

A navigation target created by NavigationTarget.

IRunicModelContext interface

Owns short, serialized mutations and reads for one mutable application-model graph.

IRunicModelContextLease interface

Represents one ownership claim over a model graph's execution context.

IRunicModelContextLifetime interface

Optionally implemented by an IRunicModelContext that reports when it closes, for example on disposal or when its UI thread shuts down. A navigator whose RunicNavigator.ModelContext implements this interface starts closing as soon as the context closes (amendment A6).

IRunicModelHookScheduler interface

Optionally implemented by an IRunicModelContext whose model has thread affinity, such as a UI dispatcher context. A navigator whose RunicNavigator.ModelContext implements this interface runs its hooks through it, each as a separate operation on the model's thread.

LeaveConfirmation class

A departure guard that asks before unsaved changes are lost, and discards them only when the departure commits. Compose it into a ViewModel that implements INavigationDepartureGuard and forward INavigationDepartureGuard.CanDepartAsync to LeaveConfirmation.CanDepartAsync.

NavigationChildRetention enum

What a child region does while the entry that owns it is retained.

NavigationCompletion<TResult> record

How a NavigationRegion.PushForResult request ended.

NavigationCompletion<TResult>.Completed record

The result entry called NavigationEntryContext.CompleteAsync, and the transition that returned from it with Value committed.

NavigationCompletion<TResult>.Dismissed record

The request ended without a result: its push did not commit, the entry retired without completing, the caller's token was cancelled after the commit, or the navigator closed.

NavigationDeparture class

Describes a departure that a guard can veto. The navigator creates one for each guard invocation; it belongs to that invocation and to the transition that runs it.

NavigationDepartureKind enum

Whether a departing entry is retained or retired.

NavigationEntry<TContent> class

One entry of a navigation region: its stable id, content, ownership and state.

NavigationEntryContext class

Gives an entry's hooks its identity, retirement signal, model context and late-completion operations.

NavigationEntryId record struct

Identifies one navigation entry. Ids increase monotonically per navigator.

NavigationEntryState enum

The lifecycle state of a navigation entry.

NavigationOperation enum

The operation that caused a departure, resume or result.

NavigationOwnership enum

Whether the navigator owns an entry's content.

NavigationPhase enum

The phase in which a transition failed.

NavigationRegion<TContent> class

One navigation region: a stack of typed entries whose top is NavigationRegion.Current. State changes commit in one model turn and raise NavigationRegion.PropertyChanged inside that turn.

NavigationRegionOptions record

Configures what happens to a child region while the entry that owns it is retained.

NavigationRejection enum

Why a navigation request was rejected.

NavigationRequestOptions record

Options of one navigation request.

NavigationResult<TContent> record

The outcome of a navigation request. Navigation outcomes are returned, never thrown.

NavigationResult<TContent>.Committed record

The transition committed.

NavigationResult<TContent>.Failed record

The transition failed; history is unchanged.

NavigationResult<TContent>.Rejected record

The transition was rejected; history is unchanged.

NavigationResult<TContent>.Superseded record

A later request of the region, or of its parent, replaced this one before it committed.

NavigationResultRequest<TContent, TResult> class

A push that waits for a typed result from the pushed entry.

NavigationResume record

Describes a retained entry becoming current again.

NavigationTarget class

Creates navigation targets and states who owns their content.

RunicModelContext class

A host-neutral serial execution context for a ViewModel graph.

RunicModelContextRegistry class

Associates each model identity with the context that owns its mutations.

RunicNavigationServiceCollectionExtensions class

Registers the experimental window navigator.

RunicNavigator class

Owns the navigation regions and entries of one window. Register it per window scope with RunicNavigationServiceCollectionExtensions.AddRunicNavigation.

RunicNavigatorOptions class

Configures a RunicNavigator.