TOC

This article has been localized into Russian by the community.

Связывание данных:

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 при каждом изменении, но со связыванием данных это начинает работать с помощью одного ключевого слова в разметке страницы.

Синтаксис связывания данных

Вся магия находится внутри фигурных скобок (в XAML эта нотация соответствует расширению разметки). Для связывания данных мы используем расширение Binding, которое позволяет нам описать отношения связывания для свойства Text. В самой простой своей форме связывание может выглядеть следующим образом:

{Binding}

Эта нотация вернет нам текущий контекст данных (DataContext, о котором речь будет идти немного позже). Это, конечно, может быть полезным, но, в большинстве ситуаций, Вы захотите связать два свойства между собой в DataContext. Подобное связывание будет выглядеть следующим образом:

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

С помощью ключевого слова Path мы определяем свойство, с которым хотим связаться, однако, Path - это свойство по умолчанию, мы можем его опустить и получить следующую нотацию:

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

Позже Вы увидите несколько разных примеров, в которых свойство Path будет явно определено, либо вовсе не учтено, но, в конечном итоге, выбор останется за Вами.

В рамках связывания данных существует множество других свойств, одним из которых является ElementName, которое мы используем сейчас в примере. Оно позволит нам напрямую подключиться к другому элементу управления-источнику. Каждое следующее свойство в тегах определяется через запятую:

{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!