Defers the creation of nodes to improve initialization time.

Deferred says that the content is not required immediately and may be created somewhat later. This allows the app to startup faster, or to create new pages faster. Without Deferred the nodes are initialized all in the same frame, which can lead to delays. With Deferred the node creation is staggered over several frames. This allows the app to start rendering and displaying prior to being completely initialized.

A common use is with an Each:

<Each Items="{items}">
    <Deferred>
        <StackPanel Orientation="Horizontal">
            <Text Value="{name}"/>
            <Text Value="{address}"/>
            <Text Value="{phone}"/>
        </StackPanel>
    </Deferred>
</Each>

Note that the delay is measured in frames: deferred content will still be added quickly. Nonetheless it may result in some popping of the new elements and a change in layout.

You only need to use this feature when you are having initializaiton time problems at startup or on new pages. Wrapping the content of Each in Deferred is a simple change that can help when you are using lists of items. The individual pages of a top-level PageControl may also be suitable for Deferred.

Do not use this on the pages of a Navigator or other control that accepts templates. Templates are already created on demand and wrapping them in Deferred usually won't be helpful.

Location

Namespace
Fuse
Package
Fuse.Triggers 2.9.1
Show Uno properties and methods

Interface of Deferred

Priority : float ux

Higher priority Deferred nodes are created first. Higher number means higher priority.

Inherited from Node

ContextParent : Node uno

The context parent is the semantic parent of this node. It is where non-UI structure should be resolved, like looking for the DataContext, a Navigation, or other semantic item.

FindNodeByName(Selector, Predicate<Node> (Node)) : Node uno

Finds the first node with a given name that satisfies the given acceptor. The serach algorithm works as follows: Nodes in the subtree are matched first, then it matches the nodes in the subtrees ofthe ancestor nodes by turn all the way to the root. If no matching node is found, the function returns null.

IsRootingStarted : bool uno

Whether rooting of this node has started. Note that even if this property returns true, rooting may not yet be completed for the node. See also IsRootingCompleted.

Name : Selector ux

Run-time name of the node. This property is automatically set using the ux:Name attribute.

OnRooted uno

If you override OnRooted you must call base.OnRooted() first in your derived class. No other processing should happen first, otherwise you might end up in an undefined state.

Inherited from PropertyObject

Inherited from object

Attached UX Attributes

GlobalKey (attached by Resource) : string ux

The ux:Global attribute creates a global resource that is accessible everywhere in UX markup.

Implemented Interfaces

IScriptObject uno

Interface for objects that can have a script engine representation