This article has been localized into Ukrainian by the community.
Привіт, зв'язаний світ!
Так само як ми розпочали цей посібник з класичного прикладу "Hello, world!", ми покажемо вам як легко використовувати прив'язку даних у WPF на прикладі, який ми назвали "Hello, bound world!". Давайте одразу з нього і розпочнемо, а потім я поясню його:
<Window x:Class="WpfTutorialSamples.DataBinding.HelloBoundWorldSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="HelloBoundWorldSample" Height="110" Width="280">
<StackPanel Margin="10">
<TextBox Name="txtValue" />
<WrapPanel Margin="0,10">
<TextBlock Text="Value: " FontWeight="Bold" />
<TextBlock Text="{Binding Path=Text, ElementName=txtValue}" />
</WrapPanel>
</StackPanel>
</Window>
Цей простий приклад показує як поєднати значення параметру Text елемента TextBlock із значенням параметра Text іншого елемента TextBox. Як ви помітили з екранного знімку, значення параметру у TextBlock автоматично змінюється разом із введенням тексту в елементі TextBox. За відсутності прив'язки даних нам знадобилося б реалізувати ручне оновлення значення параметру у TextBlock та розмістити його в обробнику події елемента TextBox, що викликається при кожній зміні значення його параметра. Натомість з появою прив'язки даних все це можна зробити без залучення програмування подій елемента, а просто під час розмітки інтерфейсу користувача.
Синтаксис прив'язки даних
Вся магія відбувається між фігурними дужками "{" та "}" які містять у собі додаткові можливості розмітки XAML. В цьому випадку використовується додаткова можливість для прив'язки даних, яка дозволяє нам встановлювати зв'язок між параметрами Text двох окремих елементів інтерфейсу користувача. У найбільш простому варіанті опис такого зв'язку виглядає таким чином:
{Binding}
Цей варіант просто надає поточний контекст даних (англ: data context). Що таке цей самий контекст даних буде пояснено трохи згодом. Цей варіант теж може знайти застосування, проте у більшості випадків вам знадобиться поєднувати між собою різні параметри контексту даних. В такому випадку це потрібно оформлювати наступним чином:
{Binding Path=NameOfProperty}
Path - призначений для посилання на відповідний параметр контексту даних для прив'язки, але зважаючи на те, що він є параметром додаткових можливостей XAML, що використовується за замовчуванням, то його можна і не згадувати, скоротивши цей запис наступним чином:
{Binding NameOfProperty}
Ви побачите багато прикладів, і в деяких Path буде використаний явно, а в деяких буде пропущений. Як саме будете застосовувати Path особисто ви – вирішувати лише вам.
Хоча прив'язка даних має ще багато параметрів, але у нашому прикладі ми використали крім Path лише один з них - ElementName. Він дозволяє використовувати у якості контексту даних інший елемент інтерфейсу користувача. Кожен параметр на кшталт Path або ElementName відокремлюється від іншого за допомогою ком.
{Binding Path=Text, ElementName=txtValue}
Підсумок
Це був лише найпростіший приклад, що надає уявлення про можливості технології прив'язки даних до елементів інтерфейсу користувача у WPF. В наступних розділах ми розглянемо інші можливості, щоб показати, наскільки потужним є цей підхід.