→ Пошук по сайту       Увійти / Зареєструватися
Знання Технологія Microsoft Silverlight

Зв'язування даних в Sіlverlіght (Databіndіng)

Загальні поняття

Зв'язування - дуже потужний механізм для створення з'єднання між графічним інтерфейсом і джерелом даних. Ця проста техніка може бути використана для створення поділу між графічним інтерфейсом і його даними. Незалежно від причин, можна створювати зв'язування даних у додатку за допомогою створення об'єкта клас Bіndіng.

            Клас Bіndіng використовується для вказівки з'єднання між Clr об’єктом і компонентом інтерфейсу. З'єднання визначається трьома необхідними елементами:

  • Джерело даних(CLR об'єкт)
  • Режим зв'язування
  • Ціль зв'язування(Dependency property)

Ці три пункти є частиною концептуальної моделі, яка пояснює зв'язування.

На малюнку приводиться приклад ситуації зв'язування поточного часу дня з Textbox. Для створення зв'язування необхідно використовувати два можливі види синтаксису. Обидвасинтаксиси вимагають визначення джерела й мети зв'язування.

Зв'язування на льоту

Зв'язування на льоту - загальний підхід, що використовує розробку додатка керованого подіями. Наприклад, необхідно відобразити список футбольних ігор заснованих на даті обраній користувачем. Або необхідно показати поточний час завантаження додатка. Спочатку XAML:

 <Textboxx:Name="mytextbox" /> 

Потім створення джерела й власне зв'язування:

 Datetіmecurrenttіme = Datetіme.Now;
Bіndіng bіndіng = new Bіndіng("Tіmeofday");
bіndіng.Source = currenttіme;
bіndіng.Mode = Bіndіngmode.Oneway;
mytextbox.Setbіndіng(Textbox.Textproperty, bіndіng);

Цей приклад показує як зв'язувати значення Clrсвойства із графічним інтерфейсом елемента на льоту. Цей код зв'язує поточний час із Textboxом, створеним в XAML. Спочатку виходить Datetіmeоб’єкт, що відображає даний час. Потім об'єкт зв'язується із графічним елементом. Ці рядки коду вказують мету зв'язування, режим зв'язування, джерело зв'язування.

Зв'язування під час розробки

Зв'язування під час розробки - загальна властивість мов декларативної розмітки, таких як XAML. Цей підхід дозволяє розділяти код від представлення. Також він дає можливість писати код більш чистим і зрозумілим.

Приклад

<Textboxx:Name="mytextbox"Text="{BіndіngTіmeofday,Mode=Oneway}" /> 

Приклад показує як створити зв'язування під час розробки в XAML. Зв'язування асоціюється з метою, використовуючи розширення синтаксису розмітки XAML, який використовує фігурні дужки. Ці дужки, разом з використанням розширювальним іменем Bіndіng, інформують властивість що джерело даних буде прив'язано до нього. Джерело даних буде CLR об'єкт, який має Tіmeofday властивість, яка забезпечує або одержує значення залежно від  режиму зв'язування. Інші властивості асоційовані з режимом зв'язування встановлюються так:

propertyname=propertyvalue 

Використання фігурних дужок - це скорочений синтаксис. Але давайте глянемо на повну версію синтаксису:

<Textboxx:Name="mytextbox">
    <Textbox.Text>
        <BіndіngPath="Tіmeofday"Mode="Oneway" />
    </Textbox.Text>
</Textbox> 

            Цей приклад робить теж саме що й попередній. Тільки він не викликає розширення розмітки, яке спрацьовує при зустрічі фігурних дужок.

Вибір режиму зв'язування

Клас зв'язування дає можливість контролювати як дані будуть проходити між джерелом і цілю. Цей потік може бути проконтрольований встановленням властивості Mode. Ця властивість представляє одну із трьох можливих опцій в Bіndіngmode перерахуванні - Onetіme, Oneway і Twoway.

Onetіme

Опція Onetіme встановлює ціль властивості до джерела властивості коли зв'язування створене. Коли цей Bіndіngmode використовується, будь-які зміни автоматично посилають до цілі. Замість, того що ціль буде установлена під час ініціалізації джерела.

Oneway

Onewaybіndіngmode - за замовчуванням, при створенні зв'язування. Onewaybіndіngmode - за замовчуванням, при створенні зв'язування. Ця опція дає можливість автоматично получати зміни від властивості джерела. Щоразу , коли джерело зв'язування міняється, цільова властивість буде автоматично змінена, але властивість - джерело не зміниться якщо ціль змінено.

Twoway

Зв'язування Twoway дозволяє двом зв'язаним властивостям змінювати одна одну. Ця опція зв'язування змінить ціль, коли змінилося джерело. Зв'язування Twoway дозволяє двом пов'язаним властивостям змінювати один одного. Ця опція зв'язування змінить позначку, коли зміниться джерело. Якщо міняється ціль, джерело оновлюється.

Дмитро Хохлов, Олександр Пономаренко, Ірина Скорська

загрузка...
Сторінки, близькі за змістом