This article is currently in the process of being translated into Croatian (~98% done).
Hello, bound world!
Kao što smo ovaj vodič započeli s klasičnim "Hello, world!" primjerom, tako ćemo vam pokazati kako je jednostavno koristiti povezivanje podataka u WPF-u s "Hello, bound world!" primjerom. Pređimo odmah na stvar, a onda ću poslije sve objasniti:
<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>
Ovaj jednostavni primjer pokazuje kako povezujemo vrijednost TextBlock kontrole s Text svojstvom TextBox kontrole. Kao što možete vidjeti na snimci zaslona, TextBlock kontrola se automatski ažurira kada unesete neki tekst u TextBox kontrolu. U nepovezanom svijetu, ovo bi zahtijevalo slušanje događaja na TextBox kontroli i onda bismo ažurirali TextBlock kontrolu svaki puta kada se tekst promijeni, ali s povezivanjem podataka ova se veza može ostvariti kroz markup.
Sintaksa povezivanja podataka
Sva čarolija se odvija unutar vitičastih zagrada, koje u XAML-u enkapsuliraju Markup Extension. Za povezivanje podataka koristimo Binding ekstenziju koja nam omogućava da opišemo odnos veze za Text svojstvo. U svom najjednostavnijem obliku, veza može izgledati ovako:
{Binding}
Ovo jednostavno vraća trenutni kontekst podataka (više o tome kasnije). Ovo definitivno može biti korisno, ali u najvećem broju slučajeva želite povezati svojstvo s drugim svojstvom u kontekstu podataka. Takva veza bi izgledala ovako:
{Binding Path=ImeSvojstva}
Path označava svojstvo kojeg želite povezati, međutim, s obzirom da je Path podrazumijevano svojstvo veze, možete ga izostaviti na ovaj način:
{Binding ImeSvojstva}
Vidjet ćete mnoge različite primjere, u nekima od njih će Path biti eksplicitno definiran, a u nekima će biti izostavljen. U konačnici je na vama koji ćete pristup koristiti.
Veza ima mnoga druga svojstva, jedno od njih je ElementName kojeg koristimo u našem primjeru. Ovo nam omogućava da se izravno povežemo s drugim elementom grafičkog sučelja kao izvorom. Svako svojstvo kojeg postavljamo u vezi odvojeno je zarezom:
{Binding Path=Text, ElementName=txtVrijednost}
Summary
Ovo je bio samo kratki uvid u sve mogućnosti povezivanja podataka u WPF-u. U idućim poglavljima otkrit ćemo više toga kako bi vam pokazali koliko je povezivanje podataka moćno.