TOC

This article has been localized into Polish by the community.

Powiązanie danych:

Hello, bound world!

Tak jak zaczęliśmy ten tutorial klasycznym „Hello, world!” pokażemy Ci jak łatwo jest używać data binding w WPF z „Witaj świecie powiązań” („Hello, bound world!”). Zaczynajmy, wyjaśnię Ci wszystko potem:

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

Ten prosty przykład pokazuje jak wiąże się wartość TextBlock, tak aby była przekazywana do atrybutu Text kontrolki TextBox. Na zrzucie ekranu widać, jak TextBlock jest automatycznie aktualizowany, podczas wprowadzania tekstu do TextBox'a. W świecie bez wiązania danych ten przykład wymagałby nasłuchiwania zdarzenia od TextBox'a, a następnie, aktualizowaniu TextBlock'a ze każdym razem, gdy tekst się zmieni, ale dzięki tej technice można to wszystko osiągnąć dzięki samym znacznikom XAML.

Składnia

Cała magia dzieje się pomiędzy nawiasami, które wskazują w XAML na rozszerzenie znacznika. Do data binding używamy rozszerzenia Binding, które pozwala nam na opisanie relacji atrybutu Text. W najprostszej formie binding może wyglądać tak:

{Binding}

Ten przykład zwraca obecny data context (więcej o tym później). To może być na pewno przydatne, ale w najczęstszych sytuacjach chciałbyś zbindować atrybut do innego w danym kontekście. Taki binding wyglądałby tak:

{Binding Path=NameOfProperty}

Path pokazuje do jakiego atrybutu chciałbyś zrobić binding, jednak Path jest domyślnym atrybutem, więc możesz napisać to tak:

{Binding NameOfProperty}

Zobaczysz wiele różnych przykładów, w niektórych Path jest zaznaczone, w niektórych go nie ma. Tak naptawdę to zależy od Ciebie jak będziesz pisać.

Binding ma wiele innych własności, jedną z nich jest ElementName, której używamy w naszym przykładzie. To pozwala nam na bezpośrednie połączenie się do innego elementu UI jako źródła. Każda właściwość, która ustawimy jest oddzielona przecinkiem:

{Binding Path=Text, ElementName=txtValue}

Podsumowanie

To był tylko rzut oka na możliwości wiązania w WPF. W następnych rozdziałach pokażemy Ci więcej możliwości i potęgi wiązania danych.

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!