Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. WPF
  3. DataBinding
Extrait - WPF Développez des applications structurées (MVVM, XAML...) (Nouvelle édition)
Extraits du livre
WPF Développez des applications structurées (MVVM, XAML...) (Nouvelle édition) Revenir à la page d'achat du livre

DataBinding

Introduction

Le binding ou le binding de données, que l’on pourrait traduire littéralement par « liaison de données », est un mécanisme absolument central en WPF. Ce mécanisme est d’ailleurs directement hérité de l’implémentation de MVVM par cette technologie.

S’il fallait le définir de façon très générale, le binding peut s’envisager comme le mécanisme qui lie deux sources de données et qui en assure la synchronisation mutuelle.

Ce mécanisme est au cœur de ce qui permet une réelle séparation entre vue et vue-modèle et à ce titre, est réellement le bras armé de MVVM dans le cadre d’un projet codé en WPF.

Ci-dessous, un schéma résumant le mécanisme de binding ainsi que les principaux objets impliqués.

images/05EI01.png

En aucun cas le schéma précédent ne propose un cycle. Il s’agit bien là de mettre en exergue la synchronisation d’une propriété de la vue-modèle vers la vue et réciproquement.

Le schéma précédent utilise plusieurs dénominations qu’il s’agit ici de préciser :

  • L’objet source situé dans la couche vue-modèle contient une propriété source qui fait l’objet d’une synchronisation via le binding.

  • Côté vue, un objet, pas nécessairement visuel, contient une propriété cible qui elle aussi peut faire l’objet d’une synchronisation via le binding.

  • L’objet Binding à même de réaliser le binding dans les deux sens.

1. Binding côté vue exclusivement

Côté vue, dans le code XAML, l’objet ou la propriété bindé utilise une expression « Binding » pour réaliser cette synchronisation.

L’objet Binding utilise trois propriétés, Source, RelativeSource ou ElementName pour se lier avec l’objet source. À ce stade, il faut préciser que le binding ne se réalise pas nécessairement avec la vue-modèle. Classiquement, la vue-modèle va fréquemment être affectée au DataContext de la vue et le binding s’effectue alors préférentiellement...