TOC

This article is currently in the process of being translated into Bulgarian (~98% done).

Обвързване на данни:

Hello, bound world! - Здравей, обвързан свят!

Точно както започнахме този урок с класическия "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>

Този прост пример показва как обвързваме стойността на TextBlock, за да съответства на свойството Text на TextBox-а. Както можете да видите от екранната снимка, TextBlock се актуализира автоматично, когато въведете текст в TextBox. В необвързан свят това би изисквало да слушаме за събитие в TextBox и след това да актуализираме TextBlock всеки път, когато текстът се промени, но с обвързването на данни тази връзка може да се установи само чрез използване на маркиране.

Синтаксис на Обвързването (Binding)

Цялата магия се случва между фигурните скоби, които в XAML капсулират Markup Extension. За обвързване на данни използваме разширението Binding, което ни позволява да опишем обвързващата връзка за свойството Text. В най-простата си форма обвързването може да изглежда така:

{Binding}

Това просто връща текущия контекст на данните (повече за това по-късно). Това определено може да бъде полезно, но в най-често срещаните ситуации бихте искали да обвържете едно свойство с друго свойство в контекста на данните. Обвързване като това би изглеждало така:

{Binding Path=НаименованиеНаСвойството}

Path задава свойството, към което искате да се обвържете, но тъй като Path е свойство по подразбиране на обвързване, можете да го оставите, ако искате просто така:

{Binding НаименованиеНаСвойството}

Ще видите много различни примери, в някои Path е изрично дефиниран, в други е пропуснат. В крайна сметка наистина зависи от вас.

Обвързването обаче има много други свойства, като едно от тях е ElementName, което използваме в нашия пример. Това ни позволява да се свържем директно с друг UI елемент като източник. Всяко свойство, което задаваме в обвързването, е разделено със запетая:

{Binding Path=Text, ElementName=txtValue}

Обобщение

Това беше само бегъл поглед към всички възможности на обвързването в WPF. В следващите глави ще открием повече от тях, за да ви покажем колко мощно е обвързването на данни.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!