Files
2019-06-20 15:58:36 +03:00

81 lines
2.7 KiB
TypeScript

import * as buttonModule from "tns-core-modules/ui/button";
import * as pageModule from "tns-core-modules/ui/page";
import * as textFieldModule from "tns-core-modules/ui/text-field";
import * as stackLayoutModule from "tns-core-modules/ui/layouts/stack-layout";
import * as observableModule from "tns-core-modules/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";
//buttonOneWay.automationText = "buttonOneWay";
//buttonTwoWay.automationText = "buttonTwoWay";
buttonSetText.text = "SetText";
buttonSetText.on(buttonModule.Button.tapEvent, function () {
targetOneWay.text = "Test";
targetTwoWay.text = "Test";
});
stack.addChild(buttonSetText);
// OneWay Binding
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);
// TwoWay Binding
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;
}