Un exemple relativement simple pour illustrer le "problème".
Imaginons que j'ai une vue (winform ou wpf) présentant des personnes stockées dans une base de donnée quelconque (sql server, oracle, postgre...).
Cette vue est une vue maître/détail, avec une simple liste de "noms prénoms" pour le maître et le reste des informations (adresse, n° de sécu, conjoint, etc..) pour le détail.
Alors, il va de soit qu'en france, aux yeux de la loi, une personne peut avoir un seul conjoint (s'il en a un) et que le conjoint du conjoint d'une personne A est A.
Autrement dit, si le conjoint de Donald est Daisy, le conjoint de Daisy est forcément Donald.
Pour réaliser cette relation un peu particulière, j'utilise un trigger afterupdate, afterinsert. Autrement dit, l'opération de mettre à jour le conjoint de Daisy quand on modifie le conjoint de Donald se fait en dehors du client.
A partir de là, comment mettre en place un databinding propre et rapide ?
Recharger la liste complète des personnes chargées dans la vue semble un peu "bourrin" comme méthode, pas très rapide dans la mesure où les personnes peuvent être nombreuses.
Et mettre à jour "à la main" les personnes concernées par un changement de conjoint, soit au niveau de la DAL, soit au niveau de la BLL semble pas très propre, dans la mesure où cela double le système de mise à jour des données.
Alors, reste le rechargement des personnes concernées par un changement de conjoint (dont 3 personnes au maximum), mais comment faire avec le databinding de microsoft ?
Partager