Skip to content

Interface IViewNode

Definition

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

Encapsulates a single bound node in a view tree.

public interface IViewNode : System.IDisposable

Implements
IDisposable

Members

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
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

Properties

Children

The children of this node.

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.

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

BindingContext


FloatingElements

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

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

IReadOnlyList<FloatingElement>


Views

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

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

IReadOnlyList<IView>


Methods

Print(StringBuilder, bool)

Prints the string representation of this node.

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.

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.

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.