import * as buttonModule from '@nativescript/core/ui/button' ; import * as pageModule from '@nativescript/core/ui/page' ; import * as textFieldModule from '@nativescript/core/ui/text-field' ; import * as stackLayoutModule from '@nativescript/core/ui/layouts/stack-layout' ; import * as observableModule from '@nativescript/core/data/observable' ; export function createPage ( ) { var page = new pageModule . Page ( ) ; var stack = new stackLayoutModule . StackLayout ( ) ; var sourceOneWay = new observableModule . Observable ( ) ; var sourceTwoWay = new observableModule . Observable ( ) ; var targetOneWay = new textFieldModule . TextField ( ) ; var targetTwoWay = new textFieldModule . TextField ( ) ; var buttonOneWay = new buttonModule . Button ( ) ; var buttonTwoWay = new buttonModule . Button ( ) ; var buttonSetText = new buttonModule . Button ( ) ; targetOneWay . id = 'textFieldOneWay' ; targetTwoWay . id = 'textFieldTwoWay' ; buttonOneWay . id = 'buttonOneWay' ; buttonTwoWay . id = 'buttonTwoWay' ; buttonSetText . id = 'buttonSetText' ; targetOneWay . automationText = 'textFieldOneWay' ; targetTwoWay . automationText = 'textFieldTwoWay' ; buttonSetText . automationText = 'buttonSetText' ; buttonSetText . text = 'SetText' ; buttonSetText . on ( buttonModule . Button . tapEvent , function ( ) { targetOneWay . text = 'Test' ; targetTwoWay . text = 'Test' ; } ) ; stack . addChild ( buttonSetText ) ; var bindingOptionOneWay = { sourceProperty : 'textSource' , targetProperty : 'text' , twoWay : false , } ; targetOneWay . bind ( bindingOptionOneWay , sourceOneWay ) ; sourceOneWay . set ( 'textSource' , 'OneWay' ) ; buttonOneWay . on ( buttonModule . Button . loadedEvent , function ( ) { buttonOneWay . text = sourceOneWay . get ( 'textSource' ) ; } ) ; buttonOneWay . on ( buttonModule . Button . tapEvent , function ( ) { buttonOneWay . text = sourceOneWay . get ( 'textSource' ) ; } ) ; stack . addChild ( targetOneWay ) ; stack . addChild ( buttonOneWay ) ; var bindingOptionTwoWay = { sourceProperty : 'textSource' , targetProperty : 'text' , twoWay : true , } ; targetTwoWay . bind ( bindingOptionTwoWay , sourceTwoWay ) ; sourceTwoWay . set ( 'textSource' , 'TwoWay' ) ; buttonTwoWay . on ( buttonModule . Button . loadedEvent , function ( ) { buttonTwoWay . text = sourceTwoWay . get ( 'textSource' ) ; } ) ; buttonTwoWay . on ( buttonModule . Button . tapEvent , function ( ) { buttonTwoWay . text = sourceTwoWay . get ( 'textSource' ) ; } ) ; stack . addChild ( targetTwoWay ) ; stack . addChild ( buttonTwoWay ) ; page . content = stack ; return page ; }