Xamarin.Forms Liaison de données

Télécharger l’exemple Télécharger l’exemple

La liaison de données est la technique qui permet de lier les propriétés de deux objets afin que les changements d’une propriété soient automatiquement répercutés sur l’autre propriété. La liaison de données fait partie intégrante de l’architecture d’application modèle-vue-vue modèle (MVVM).

Problème de la liaison de données

Une Xamarin.Forms application se compose d’une ou plusieurs pages, chacune contenant généralement plusieurs objets d’interface utilisateur appelés vues. Une des principales tâches du programme est de synchroniser ces vues, et d’effectuer le suivi des différentes valeurs ou sélections qu’elles représentent. Souvent, les vues représentent les valeurs d’une source de données sous-jacente et elles sont manipulées par l’utilisateur pour changer ces données. Quand la vue change, les données sous-jacentes doivent refléter ce changement et, inversement, quand les données sous-jacentes changent, le changement doit être reflété dans la vue.

Pour gérer correctement cette tâche, le programme doit être averti des changements des vues ou des données sous-jacentes. La solution courante est de définir des événements qui indiquent quand un changement se produit. Vous pouvez installer un gestionnaire d’événements auquel sont signalés ces changements. Il répond en transférant les données d’un objet à un autre. Toutefois, plusieurs vues impliquent plusieurs gestionnaires d’événements et, par extension, beaucoup de code.

Solution de la liaison de données

La liaison de données automatise ce travail et affiche les gestionnaires d’événements inutiles. Les liaisons de données peuvent être implémentées dans du code ou en XAML, mais elles sont beaucoup plus courantes en XAML, car elles permettent ainsi de réduire la taille du fichier code-behind. En remplaçant le code procédural dans les gestionnaires d’événements par du code déclaratif ou des balises, l’application est simplifiée et clarifiée.

Un des deux objets impliqués dans une liaison de données est presque toujours un élément qui dérive de View et constitue une partie de l’interface visuelle d’une page. L’autre objet peut être :

  • Un autre View dérivé, généralement dans la même page.
  • Un objet dans un fichier de code.

Dans les programmes de démonstration comme ceux de l’exemple DataBindingDemos, les liaisons de données entre deux View dérivées sont souvent montrées pour plus de clarté et de simplicité. Toutefois, les mêmes principes peuvent être appliqués aux liaisons de données entre un View et d’autres objets. Lorsqu’une application est générée à l’aide de l’architecture MVVM (Model-ViewModel), la classe avec des données sous-jacentes est souvent appelée viewmodel.

Les liaisons de données sont décrites dans la série d’articles suivante :

Liaisons de base

Découvrez la différence entre la cible et la source d’une liaison de données, et consultez des liaisons de données simples dans du code et en XAML.

Mode de liaison

Découvrez comment le mode de liaison peut contrôler le flux de données entre les deux objets.

Formatage de chaîne

Utilisez une liaison de données pour mettre en forme et afficher les objets sous forme de chaînes.

Chemin de liaison

Explorez plus en détail la propriété Path de la liaison de données pour accéder aux sous-propriétés et aux membres de la collection.

Convertisseurs de valeur de liaison

Utilisez des convertisseurs de valeur de liaison pour modifier les valeurs dans la liaison de données.

Liaisons relatives

Utilisez des liaisons relatives pour définir la source de liaison par rapport à la position de la cible de liaison.

Valeurs de repli pour les liaisons

Renforcez les liaisons de données en définissant les valeurs de secours à utiliser en cas d’échec du processus de liaison.

Liaisons multiples

Attachez une collection d’objets Binding à une seule propriété cible de liaison.

Interface de commande

Implémentez la propriété Command avec des liaisons de données.

Liaisons compilées

Utilisez des liaisons compilées pour améliorer les performances de liaison de données.