This article has been localized into French by the community.
Hello, bound world!
Juste comme nous l'avons fait au début de ce tutoriel avec le classique "Hello, world!", nous allons voir à quel point il est facile d'utiliser des "data bindings" en WPF avec un exemple "Hello, bound world!". Voyons de quoi il en retourne, et je vous expliquerai tout ca juste après :
<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>
Cet exemple très simple montre comment on "bind"la valeur du TextBlock pour correspondre à la propriété Text de la TextBox. Comme vous pouvez le voir, le TextBlock est automatiquement mis à jour quand vous saisissez du texte dans la TextBox. Sans les bindings, il nous faudrait écouter chaque évènement de la TextBox puis mettre à jour le TextBlock en conséquences chaque fois que le texte change, mais avec les data bindings, cette connection peut être établie simplement par balisage.
La syntaxe d'un Binding
Tout se passe entre les deux accolades, qui servent à encapsuler une extension de balisage en XAML. Pour lier (bind) des données, on utilise l'extension Binding, qui nous permet de décrire un Binding pour la propriété Text. Dans sa forme la plus simple, un binding peut ressembler à ça :
{Binding}
Ce Binding retourne simplement le Data Context (dont on parlera plus en détail plus tard). Il peut être très utile, mais plus communément, on souhaite binder une propriété à une autre propriété. Ce qui ressemblerait à ça:
{Binding Path=NomDeLaPropriete}
Le Path indique vers quelle propriété on veut effectuer le binding. Cependant, comme il s'agit de la propriété par défaut, on peut tout simplement s'en débarasser, pour écrire ceci:
{Binding NomDeLaPropriete}
Vous verrez de nombreux exemples, certains où le Path est défini explicitement, et d'autres où on ne le précise pas. Ce n'est vraiment qu'une question de préférence.
Cependant, un Binding possède beaucoup d'autres propriétés, l'une d'entre elles étant ElementName, que nous utilisons dans notre exemple et qui nous permet de nous connecter directement à un autre élément de l'interface utilisateur (UI). Les propriétés que nous assignons dans le Binding sont séparées par une virgule:
{Binding Path=Text, ElementName=txtValue}
Résumé
Il s'agit là d'un simple apercu de toutes les possibilités qu'offre le Binding en WPF. Dans les prochains chapitres, nous en apprendrons plus sur ceux-ci, pour vous montrer à quel point cet outil peut s'avérer puissant.