Expand description
ferroui-reactiveui-controls
The integration of ReactiveUI (ferroui-reactiveui) with FerroUI, ported from the integration
of ReactiveUI with the reference UI framework, together with the matching parts of
ReactiveUI.Binding and ReactiveUI.Primitives:
- the scheduler of the user-interface thread,
FerroScheduler, which the application sets asRxSchedulers::main_thread_scheduler, andFerroScheduler::install_on_ui_thread, which makes the dispatcher’s synchronization context the context of the user-interface thread; - the property observation of FerroUI objects (
FerroObjectObservableForProperty), the command binding of FerroUI controls (FerroCreatesCommandBinding, withReactiveCommandAdapter, a command of ReactiveUI as a command of FerroUI) and the view thread invoker (FerroViewThreadInvoker), whichFerroBindingModule(orregister_binding_integration) registers; - the activation of the views of FerroUI (
FerroActivationForViewFetcher); - the properties of FerroUI objects as signals (
FerroObjectReactiveExtensions); - property paths through the properties of FerroUI objects (
ferro_property,ferro_prop!) and the lookup of the FerroUI object behind an untyped object of ReactiveUI (FerroObjectHandles); - the reactive views, the view hosts, the data-template hook, suspension and
use_reactive_uion the application builder.
Macros§
- ferro_
prop - A
PropertyPathof one property of a FerroUI object (x => x.Texton a control).
Structs§
- Auto
Data Template Binding Hook - A binding hook that gives an
ItemsControla default data template when it has no item template and no data templates (AutoDataTemplateBindingHook). - Auto
Suspend Helper - Automatic suspension and state persistence for FerroUI applications (
AutoSuspendHelper). - Bindable
View - A control of a reactive view class (a document whose root is
ReactiveUserControlBaseorReactiveWindowBase) as the view that the bindings of ReactiveUI take: anIViewFor<VM>over the control’sViewModelproperty, which raisesPropertyChangedforViewModelwhen the property changes. - Control
View For - A control of a class that implements
IControlViewFor, as a view of ReactiveUI (IViewFor<TViewModel>on the control). - Ferro
Activation ForView Fetcher - The activation of the views of FerroUI (
FerroActivationForViewFetcher). - Ferro
Binding Module - Registers the property observer of FerroUI objects, the command binder of FerroUI controls and
the view thread invoker with the dependency resolver (
FerroBindingModule). - Ferro
Creates Command Binding - Binds commands to the input elements of FerroUI, through a command source’s
Commandproperty or through a routed event (FerroCreatesCommandBinding). - Ferro
Object Handles - The registry of the types that stand for a FerroUI object in the untyped values of ReactiveUI, and the lookup of the object behind such a value.
- Ferro
Object Observable ForProperty - Observes a property of a FerroUI object through the registered property of that name
(
FerroObjectObservableForProperty). - Ferro
Property Signal - A property of a FerroUI object as a signal: an observer whose values
on_nexthandles, and the observable of the property (FerroPropertySignal<T>). - Ferro
Property Subscription - The object and the handler a property observation detaches when it is disposed
(
FerroPropertySubscription): disposing it removes the property-changed handler from the object; only the first call does anything. - Ferro
Scheduler - The scheduler of the user-interface thread: it runs its work on the thread of a
Dispatcher, at a priority, and coalesces the work scheduled before the dispatcher runs it into one job of the dispatcher (a drain). - Ferro
View Thread Invoker - Routes the writes of the bindings to a FerroUI object onto the
FerroSchedulerof the dispatcher that owns it (FerroViewThreadInvoker). - Navigation
Target - A pending navigation target (
NavigationTarget): the view model to display and the optional view contract. - Reactive
Command Adapter - A command of ReactiveUI as a command of FerroUI: each member forwards to the command it wraps,
with the parameter seen as
&dyn Any. - Reactive
Command Parameter - A command parameter of ReactiveUI that is not one of the values the property system compares,
held by a control’s
CommandParameter: it compares by identity, as an object does upstream. - Reactive
User Control Base - A non-generic ReactiveUI
UserControlbase that owns the view model property (ReactiveUserControlBase). - Reactive
View - A reactive view class instance typed by its view model (
ReactiveUserControl<TViewModel>,ReactiveWindow<TViewModel>): a handle that dereferences to the control and, shared as anRc, is itsIViewFor<TViewModel>. - Reactive
View For - A control with a
ViewModelproperty as an untyped view of ReactiveUI (IViewFor). - Reactive
Window Base - A non-generic ReactiveUI
Windowbase that owns the view model property (ReactiveWindowBase). - Routed
View Host - Hosts the view associated with the current ReactiveUI routing state (
RoutedViewHost). - Splat
App - Configures the support of FerroUI on a ReactiveUI builder and builds the Splat application once
(
SplatApp). - Startup
Configuration - Builds ReactiveUI once the platform services of the application are ready
(
StartupConfiguration). - Subscription
Errors - Handles the errors of observable subscriptions (
SubscriptionErrors). - Untyped
View Model - A view model of a type that was not registered, as the value of a property: the view model itself, compared by identity.
- View
Assembly - The types of an application that hold its views (an assembly scanned upstream).
- View
Assembly Type - A type of a
ViewAssembly: its name and, for a view, how it is registered. - View
ForValue - A view that is not a control, as the content of a host (the view object itself as
Contentupstream): compared by identity. - View
Host Navigation - Resolves and wires the view a content host displays for a view model (
ViewHostNavigation). - View
Model Property Sync - Keeps a view’s view model property and its data context in step (
ViewModelPropertySync). - View
Model View Host - Loads and displays the view associated with the
ViewModelproperty (ViewModelViewHost). - View
Registrar - Registers the views of assemblies with a dependency resolver (
ViewRegistrar).
Enums§
- View
Link - How an adapter holds its control: strongly, for a view that is handed to others (a view a locator creates), or weakly, for the view a control uses for itself (its own activation), so that the control and its handlers do not keep each other alive.
Constants§
- REACTIVEUI_
XML_ NAMESPACE - The XML namespace of ReactiveUI (
http://reactiveui.net).
Statics§
- ASSEMBLY
- What this crate states about itself for markup: its assembly name and the XML namespace of
ReactiveUI mapped to its namespace (
[assembly: XmlnsDefinition("http://reactiveui.net", ..)]).
Traits§
- AppBuilder
Extensions - Extends the application builder of
ferroui-controlswith ReactiveUI (AppBuilderExtensions,extension(AppBuilder builder)). - Ferro
AppBuilder Extensions with_ferroon an application builder that is a builder of ReactiveUI.Binding (WithFerroonIAppBuilder, which casts the builder).- Ferro
Binding Builder Extensions - The FerroUI members of the builder of ReactiveUI.Binding (
FerroBindingBuilderExtensions):with_ferroregisters theFerroBindingModule, which adds the property observation of FerroUI objects, the command binding of FerroUI controls and the view thread invoker. - Ferro
Object Reactive Extensions - The properties of a FerroUI object as signals (
FerroObjectReactiveExtensions): a signal observes the property, asFerroObjectExtensions::get_observabledoes (the current value on subscription, then each change), and sets the property to each value pushed into it. - IControl
View For - A control class that is a view of the view model type
ViewModel(a control that implementsIViewFor<TViewModel>upstream, with a plainViewModelproperty). - IReactive
View Class - A control class with a
ViewModelproperty of the untyped value of the property system. - ITyped
Reactive View Class - A reactive view class that a typed handle can restrict to one type of view model.
- IView
Control - An adapter that shows a control as a view of ReactiveUI.
- ReactiveUI
Builder Ferro Extensions - Extends ReactiveUI’s builder with the services of FerroUI (
extension(IReactiveUIBuilder builder)).
Functions§
- boxed_
parameter - A command parameter of ReactiveUI as the value of a control’s
CommandParameter: aBoxedValue(or a handle to an object of FerroUI) as it is; a string, a number, a character or a boolean boxed as itself, so that the control’s parameter compares as the value; anything else in aReactiveCommandParameter. - control_
target - The handle of
controlas the binder takes a control. - control_
type - The handle type of class
Tas the binder sees a control: whatTypeIdthe command binding of a control of classTpasses (ICreatesCommandBinding::get_affinity_for_object). - element_
control - The element
element(namednamein the document of the view) as the control a command binds to (v => v.Element). - element_
property - The property
propertyof the elementelement(namednamein the document of the view), as the side of a binding the binding writes withset(v => v.Element.Property). - ferro_
property - A path of the property
nameof a FerroUI object of classT, read withget: its step gives the object as its owner (ferro_property_owner), and the path observes the change of the registered property of that name. - ferro_
property_ owner - The owner of the properties of
object, as a step of a path gives it to the property observers chosen at run time: the object as its untyped handle, without aPropertyChangednotification. - is_
view_ model_ of - Whether the value of a property holds a view model of type
VM(value is TViewModel). - observe_
ferro_ property - Runs
changedeach time the registered propertynameofobjectchanges, until the result is disposed; a property the class does not register is never observed. - owned_
element_ property element_propertywhose step to the element names the view as the owner of the element, so that the binding hooks see the element and its property (the default item template of an items control,AutoDataTemplateBindingHook).- parameter_
as_ any - The value a command of ReactiveUI is executed with, from the value of a control’s
CommandParameter: the value itself, or the object of aReactiveCommandParameter. - register_
binding_ integration - Registers what
FerroBindingModuleregisters withresolver: the property observer of FerroUI objects (a lazy singleton ofdyn ICreatesObservableForProperty), the command binder of FerroUI controls (dyn ICreatesCommandBinding) and the shared view thread invoker (dyn IViewThreadInvoker). - register_
types - Registers the namespace, the types and the assembly of this crate (and of the crates it is built on). Cheap and idempotent.
- register_
view_ control - Registers the adapter type
Ton this thread, so thatview_controlfinds the control of its views. Idempotent; the adapters of this crate register themselves when they are created. - register_
view_ model - Registers the view model type
VMon this thread: a view model of the type is then the value of aDataContextitself (Rc<VM>as the box), and a reference type of the untyped value conversions (ValueTypes::register_reference). Idempotent. - same_
view_ model - Whether two values of properties hold the same view model (
ReferenceEqualsof the objects): both null, or the same object behind any of their forms. - same_
view_ model_ object - Whether two view models are the same object (
ReferenceEquals). - value_
of_ optional_ view_ model value_of_view_modelof an optional view model.- value_
of_ view_ model - The value of a property that holds
view_model(objectwritten to a property): the view model itself when its type is registered, else anUntypedViewModel. - view_
control - The control behind a view (
view as Control): the control of an adapter of a registered type,Nonefor any other view. - view_
model_ of_ optional view_model_of_valueof an optional value.- view_
model_ of_ value - The view model held by the value of a property (
objectread as a view model): the object form of a registered reference handle, the view model of anUntypedViewModel, or the value itself.
Type Aliases§
- Reactive
User Control - A ReactiveUI
UserControlthat implementsIViewFor<TViewModel>(ReactiveUserControl<TViewModel>). - Reactive
Window - A ReactiveUI
Windowthat implementsIViewFor<TViewModel>(ReactiveWindow<TViewModel>). - View
Model Filter - The filter of the view models a reactive view takes from its
DataContext(IsValidViewModelValue).