Прив’язка даних (Data binding)
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Прив’язка даних (Data binding)Про прив’язку данихПрив'язка даних (Data binding) — процес приєднання даних в одному об'єкті до іншого об'єкту. Він забезпечує зручний шлях передачі даних між різними рівнями застосунку. Прив'язка даних вимагає властивості джерела, властивості адресату та події запуску, яка вказує, коли копіювати дані з джерела прив’язки до адресату прив’язки. Об'єкт здійснює запущену подію, коли змінюється властивість джерела. Adobe Flex надає три шляхи конкретизації прив'язки даних: синтаксис з фігурними дужками ({}) в MXML, тег <?xml version="1.0"?> <!--binding/BasicBinding.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI" text="Enter text here"/> <mx:Text id="myText" text="{myTI.text}"/> </mx:Application> Нижче приводиться SWF-файл для попереднього прикладу:
![]() Назва властивості всередині фігурних дужок — властивість представлення джерела. Коли значення джерела змінюється, Flex копіює поточне значення його властивості, myTI.text, до властивості адресату, тобто до властивості Text control. Можна включати код ActionScript і вирази E4X як частину представлення прив'язки даних, як показано в наступному прикладі: <?xml version="1.0"?> <!--binding/BasicBindingWithAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText" text="{myTI.text.toUpperCase()}"/> </mx:Application> Нижче приводиться SWF-файл для попереднього прикладу: ![]() В цьому прикладі використовується метод String.toUpperCase() ActionScript’у для перетворення тексту з властивості джерела до верхнього реєстру, коли Flex копіює дані у властивість адресату. Більш конкретну інформацію див. в розділах Using ActionScript in data binding expressions та Using an E4X expression in a data binding expression. Можна використовувати тег <?xml version="1.0"?> <!--binding/BasicBindingMXML.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:TextInput id="myTI"/> <mx:Text id="myText"/> <mx:Binding source="myTI.text" destination="myText.text"/> </mx:Application> Нижче приводиться SWF-файл для попереднього прикладу: ![]() На противагу синтаксису з фігурними дужками можна використовувати тег І синтаксис з фігурними дужками, і тег <?xml version="1.0"?> <!--binding/BasicBindingAS.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ import mx.binding.utils.*; // Define data binding. public function initBindingHandler():void { BindingUtils.bindProperty(myText, "text", myTI, "text"); } ]]> </mx:Script> <mx:TextInput id="myTI"/> <mx:Text id="myText" preinitialize="initBindingHandler();"/> </mx:Application> Нижче приводиться SWF-файл для попереднього прикладу: ![]() В цьому прикладі для визначення прив’язки використовується статичний метод BindingUtils.bindProperty(). Для визначення прив'язки до функції можна також застосувати метод BindingUtils.bindSetter(). Для отримання більш конкретної інформації див. Defining data bindings in ActionScript. В цьому прикладі варто відмітити, що для визначення прив’язки даних використано заздалегідь ініціалізовану подію. Це необхідно, тому що Flex запускає всі прив'язки даних при запуску застосунку, коли джерело надсилає подію ініціалізації. Для отримання більш конкретної інформації див. When data binding occurs. Коли відбувається прив’язка данихПрив’язка відбувається за наступних обставин:
Щоб контролювати прив'язку даних, можна призначити спостерігача прив’язки, який запускає обробник події, коли відбувається прив'язка даних. Для отримання більш конкретної інформації див. Defining binding watchers. Метод ExecuteBindings() класу UIComponent виконує всі прив’язки, для яких об’єкт UIComponent є адресатом. Всі контейнери і елементи керування, так само як і компонент Repeater, наслідують клас UIComponent. Метод ExecuteChildBindings() класів Container і Repeater виконує всі прив’язки, для яких дочірні компоненти UIComponent класу Container або Repeater є адресатами. Всі контейнери наслідують клас Container. Ці методи дають змогу виконувати прив’язки, які не відбуваються, як очікується. Додаючи один рядок коду, як наприклад виклик методу executeChildBindings(), можна відновити інтерфейс користувача після внесення зміни, яка не привела до виконання прив’язки. Проте, потрібно використовувати метод executeBindings(), лише коли є впевненість в неавтоматичному виконанні прив’язки. Властивості, які підтримують прив’язку данихМожна використовувати всі властивості об'єкту як адресат вираження прив’язки даних. Проте, щоб використовувати властивість як джерело вираження прив'язки даних, об’єкт джерела повинен бути реалізований для підтримки прив'язки даних, що означає, що об'єкт здійснює подію, коли значення властивості змінюється для запуску прив’язки. В цьому тематичному розділі властивість, яка може бути використана як вираження джерела прив’язки даних, називається властивістю прив’язки. В Adobe Flex Language Reference, властивість, яка може бути використана як джерело вираження прив'язки даних, включає наступне твердження в його описі: "Ця властивість може бути використана як джерело для прив'язки даних." Для більш конкретної інформації про створення властивостей, які можуть бути використані як вираження джерела прив'язки даних, див. Creating properties to use as the source for data binding. Використання доступних лише для читання властивостей (read-only properties) як джерела для прив’язки данихЯк джерело для вираження прив’язки даних можна використовувати властивість, доступну лише для читання, визначену методом отримання getter, але не методом установки значення setter (*). Flex виконує прив'язку даних одноразово, коли запускається застосунок. Використання статичних властивостей як джерела для прив’язкиМожна автоматично використовувати статичну константу як джерело для вираження прив’язки даних. Flex виконує прив’язку даних одноразово, коли запускається за стосунок. Можна використовувати статичну змінну як джерело для вираження прив’язки даних. Flex виконує прив'язку даних одноразово, коли запускається застосунок. Створення змінних для їх використання як джерела прив’язкиСтворюючи змінну, щоб використати її як джерело прив'язки даних, Flex може автоматично копіювати значення властивості джерела до будь-якої властивості адресату. Це відбувається, коли властивість джерела змінюється. Для того, щоб Flex міг створити копію, потрібно використати тег метаданих [Bindable] для реєстрації властивості прив’язки з Flex. Тег метаданих [Bindable] має наступний синтаксис: [Bindable] [Bindable(event="eventname")] Якщо не називати подію, Flex автоматично створює подію під назвою propertyChange, і Flex здійснює ту подію, коли властивість змінюється для запуску будь-яких прив’язок даних, які використовують властивість як джерело прив’язки даних. Якщо конкретизувати назву події, то відіслати подію, коли властивість джерела змінюється, — задача програміста. Для більш конкретної інформації і прикладів використання тегу метаданих [Bindable], див. Using the Bindable metadata tag. Наступний приклад робить властивості maxFontSize і minFontSize, які визначено як змінні, придатними бути джерелом для прив’язки даних: <?xml version="1.0"?> <!--binding/FontPropertyBinding.mxml --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:Script> <![CDATA[ // Define public vars for tracking font size. [Bindable] public var maxFontSize:Number = 15; [Bindable] public var minFontSize:Number = 5; ]]> </mx:Script> <mx:Text text="{maxFontSize}"/> <mx:Text text="{minFontSize}"/> <mx:Button click="maxFontSize=20; minFontSize=10;"/> </mx:Application> Нижче приводиться SWF-файл для попереднього прикладу до натиснення кнопки: ![]() Та після натиснення кнопки: ![]() При натисненні на кнопку відбувається оновлення значень властивостей maxFontSize і minFontSize, і запускається оновлення прив’язки даних в текстовому полі. Примітка: Якщо опустити тег метаданих [Bindable], компілятор Flex показує попередження, що механізм прив'язки даних не може виявити змін до властивості. Для чого використовується прив’язка данихЗагальне використання прив’язки даних включають наступне:
Хоча прив’язка є потужним механізмом, вона не підходить для всіх ситуацій. Наприклад, для складного користувацького інтерфейсу, в якому окремі частини повинні оновлюватися строго в певний період часу, найкраще було б використати метод, який присвоює властивості по порядку. Крім того, прив’язка виконується щоразу, коли змінюється властивість, так що це не найкраще рішення, якщо бажано, щоб про зміни повідомлялося тільки в певний час. Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом
|
Copyright © 2008—2023 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|