This article is currently in the process of being translated into Lithuanian (~98% done).
Hello, bound world!
Kaip ir pradėjome šiuos mokymus su klasikine "Sveikas pasauli" programa, dabar parodysime kaip lengva naudotis duomenų susiejimu WPF aplinkoje su "Sveikas susietas pasauli" programėle. Tad pradėkime ir pakeliui viską paaiškinsiu smulkiau.
<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>
Šis paprastas pavyzdys parodo kaip susieti "TextBlock" elementą kad jis atitiktų "Textbox" "Text" atributą. Kaip matai "TextBlock" yra automatiškai atnaujinamas tekstu įvestu į "TextBox" elementą. Jei nenaudotume duomenų sieimo mums reikėtų naudoti įvykius (event'us) kad pasiektume tą patį rezultatą.
Duomenų siejimo sintaksė
Visas veiksmas vyksta tarp lauštinių skliaustų, kurie XAML apriboja žymėjimo plėtinius (angl.: Markup Extension ) Duomenų siejimui naudojame žymėjimo plėtinius, kurie leidžia mums aprašyti siejimo ryšį su Text ypatybe. Paprasčiausias siejimas gali atrodyti taip:
{Binding}
Šis varijantas tiesiog gražina dabartinį duomenų contekstą (angl.: data context) (plačiau duomenų kontekstą aptarsime vėliau). ŠŠis metodas tikrai gali būti naudingas, bet dažniausiai atributas yra siejamas su duomenų konteksto atributu. Toks siejimas atrodytų maždaug taip:
{Binding Path=NameOfProperty} (Čia "NameOfProperty" duomenų konteksto atributas)
"Path" parodo kurį atributą nori susieti, tačiau, kadangi "Path" yra defaultin'is susiejimo atributas, jei nori gali jį nurodyti tiesiog taip:
{Binding NameOfProperty}
Programuodamas tu matysi daug įvairių pavyzdžių, kai kur "Path" bus apibrėžtas, kitur jo nebus. Iš esmės tai tavo pasirinkimas, kaip tau patogiau.
Duomenų siejimas turi daug kitų atributų (ne tik Path), dar vienas iš jų yra "ElementName", kurį mes naudojame šiame pavyzdyje. Šis atributas leidžia prisijungti prie kito UI elemento kaip prie duomenų šaltinio. Kiekvienas atributas naudojamas duomenų siejimui yra atskiriamas tarpu.
{Binding Path=Text, ElementName=txtValue}
Santrauka
Ši pamoka buvo tik mažas žvilgsnis į duomenų siejimo galimybes WPF aplikacijose. Kituose pamokose pamatysi daugiau pavyzdžių koks galingas įrankis yra duomenų siejimas.