Skip to content

Class BackoffNodeDecorator

Definition

Namespace: StardewUI.Framework.Binding
Assembly: StardewUI.dll

A transparent binding node whose purpose is to throttle failed updates and log any errors.

public class BackoffNodeDecorator : StardewUI.Framework.Binding.IViewNode, 
    System.IDisposable

Inheritance
Object ⇦ BackoffNodeDecorator

Implements
IViewNode, IDisposable

Members

Constructors

Name Description
BackoffNodeDecorator(IViewNode, BackoffRule) A transparent binding node whose purpose is to throttle failed updates and log any errors.

Properties

Name Description
Children The children of this node.
Context The currently-bound context data, used as the source for any InputBinding, OneTimeBinding, OutputBinding or TwoWayBinding attributes.
FloatingElements The floating elements for this node, if any have been created.
Views The views for this node, if any have been created.

Methods

Name Description
Dispose()
Print(StringBuilder, Boolean) Prints the string representation of this node.
Reset() Clears any Views associated with this node and resets it to the default state before it was bound.
Update(TimeSpan) Performs the regular per-frame update for this node.

Details

Constructors

BackoffNodeDecorator(IViewNode, BackoffRule)

A transparent binding node whose purpose is to throttle failed updates and log any errors.

public BackoffNodeDecorator(StardewUI.Framework.Binding.IViewNode node, StardewUI.Framework.BackoffRule backoffRule);
Parameters

node   IViewNode
The owned node.

backoffRule   BackoffRule
Configures the backoff duration and scaling when an update fails.


Properties

Children

The children of this node.

public System.Collections.Generic.IReadOnlyList<StardewUI.Framework.Binding.IViewNode.Child> Children { get; }
Property Value

IReadOnlyList<Child>

Remarks

Node children represent views in potentia. Every DOM node maps to (at least) one IViewNode, but views are created lazily and may not exist for nodes with conditional attributes or other rules.


Context

The currently-bound context data, used as the source for any InputBinding, OneTimeBinding, OutputBinding or TwoWayBinding attributes.

public StardewUI.Framework.Binding.BindingContext Context { get; set; }
Property Value

BindingContext


FloatingElements

The floating elements for this node, if any have been created.

public System.Collections.Generic.IReadOnlyList<StardewUI.Layout.FloatingElement> FloatingElements { get; }
Property Value

IReadOnlyList<FloatingElement>


Views

The views for this node, if any have been created.

public System.Collections.Generic.IReadOnlyList<StardewUI.IView> Views { get; }
Property Value

IReadOnlyList<IView>


Methods

Dispose()

public void Dispose();

Print(StringBuilder, bool)

Prints the string representation of this node.

public void Print(System.Text.StringBuilder sb, bool includeChildren);
Parameters

sb   StringBuilder
The output builder to receive to the node's text.

includeChildren   Boolean
Whether or not to include the string representation of any/all child nodes between this node's opening and close tags. If this is false or there are no children, it will be formatted as a self-closing tag.


Reset()

Clears any Views associated with this node and resets it to the default state before it was bound.

public void Reset();
Remarks

Propagates the request down to Children, but is not required to clear Children and does not affect the Context assignment.

This is used to "unbind" the target of a structural node like ConditionalNode and in some cases prepare it for subsequent reuse.


Update(TimeSpan)

Performs the regular per-frame update for this node.

public bool Update(System.TimeSpan elapsed);
Parameters

elapsed   TimeSpan
Time elapsed since last update.

Returns

Boolean

true if any aspect of the view tree from this level downward was changed, i.e. as a result of a new Context, changed context properties, invalidated assets, or the View being created for the first time; false if no changes were made.