In this lesson, I'll demonstrate how to bidirectionally bind one property to another in Vision. I have two components on this window, a numeric text field and a slider. If I create a binding on the slider's value property and bind it to the numeric text fields value, the two properties are now linked. So I can change the numeric text field value and then the slider value changes. However, if I change the slider value, the numeric text field doesn't change. If I want the binding to also work the other way and change the source, I need to set it up to be bidirectional. In order to do this, I can open the binding window and in the bottom left corner, I can check the box that says bidirectional. Now when I change the slider, the numeric text field also changes. An example application of this could be with UDT property bindings. For example, I have a tank UDT property that I've added to the root container of this window.
If I create a multistate button, I can create a bidirectional binding on its control value and bind it to the udt's HOA property. I'll quickly bind the indicator value as well, so the appearance changes. Now if I go into preview mode and click the hand, off, or auto buttons, the UDT property will change. My UDT property is bidirectionally bound to a UDT instance, so an operator now has the ability to write back to a tag through the binding on this button.