Skip to main content
Version: 8.1

Bindings in Perspective

Perspective allows for numerous types of bindings to allow for the dynamic updating of properties associated with Views or their child components.

When configuring a binding, it is initially unidirectional: the value on the property that contains the binding configuration will synchronize with whatever it is bound to. For example, if the text property on a Label component is bound to a tag (via a tag binding), then the text on the Label will update to match the value of the tag.

However, if the value of the Text property on the Label changed (say by a script, or someone opening the view in the Designer and manually changing its value), the binding would not cause the value on the tag to change. However, it's possible to make a binding bidirectional.

Bidirectional Bindings​

Tag and property bindings can be made bidirectional simply by checking the Bidirectional checkbox in the Options section of the Property Binding window. Typically this would be done on one of the PROPS properties of an Input component like a multi-state button or a numeric input.

Coalesce​

New in 8.1.39
When the Bidirectional checkbox is set to true, a Coalesce binding config property becomes available. When Coalesce is selected, changes to the target property’s child properties will be combined into a single writeback to the binding source. The Coalesce property is false by default.

Binding Interface​

A property can have many different types of bindings, for example it can have a tag or an Expression binding. Instead of setting a label statically, the text might change based on a PLC value or on-screen selection. There many ways to bind your components to show values from PLCs, databases, other components, or user input.

In addition, bindings can make use of Transforms, which allow a binding to further manipulate the resulting value.