This article has been localized into Danish by the community.
Hej, bundne verden!
Ligesom vi begyndte dette selvstudie med den klassiske "Hej, Verden!", vil vi vise dig hvor let det er at benytte databinding i WPF med et "Hej, bundne verden"-eksemplet. Lad os springe lige ud i det og så vil jeg forklare det bagefter:
<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>
Dette enkle eksempel viser hvordan vi binde værdien af TextBlock der passer til Text-egenskaben i TextBox. Som du kan se af screenshottet vil TextBlock automatisk opdateres når du indsætter tekst i TextBox. I en ikke-forbundet verden, ville dette kræve at vi lytter til en begivenhed i TextBox og så opdaterer TextBlock'en hver gang teksten ændres, men ved databinding kan man etablere forbindelsen blot ved at benytte sig af markup.
Syntaxen i en Binding
Al magien sker mellem de krøllede parenteser, som i XAML indkapsler en Markup-udvidelse. Til databinding bruger vi Binding udvidelsen, som giver os mulighed for at beskrive bindingsforholdet for Text-egenskaben. I den mest simple form kan en binding se således ud:
{Binding}
Dette returnerer simpelthen den nuværende datakontekst (mere om det senere). Dette kan afgjort være nyttigt, men i de mest almindelige situationer ønsker du at binde en egenskab til en anden egenskab på datakonteksten. En sådan binding vil se således ud:
{Binding Path=NameOfProperty}
Path egenskaben fortæller den egenskab, du ønsker at binde til, men siden Path er standardegenskaben på en binding, kan den udlades, hvis du vil, som vist her:
{Binding NameOfProperty}
Du vil se mange forskellige eksempler - nogle med Path eksplicit angivet og nogle, hvor den er udeladt. Det er i sidste ende fuldstændig op til dig.
En binding har dog mange andre egenskaber, og en af dem er ElementName som vi benytter i vores eksempel. Dette tillader os at forbinde det direkte til et andet brugerinterfaceelement som kilde. Enhver egenskab som vi forbinder, adskilles med et komma:
{Binding Path=Text, ElementName=txtValue}
Resume
Dette var blot et kort blik på alle bindingsmuligheder i WPF. I de næste kapitler vil vi opdage flere af dem, for at vise dig hvor magtfuld databinding er.