J'essaie de trouver la meilleure façon de faire exploser les événements PropertyChanged des propriétés imbriquées dans mon ModelView. Dire que j'ai mon ModelView PersonModelView
qui a une propriété PersonModelView.Address
. Address
à son tour a une propriété City
. Quand je me lie à City
à mon avis, je ferais quelque chose comme {Binding Address.City}
.Quel est un bon moyen de générer des événements INotifyPropertyChanged à travers les propriétés de ViewModel avec MVVM?
Mon problème est que même si Address
implémente INotifyPropertyChanged
, la liaison ne sera pas mis à jour car il gère PropertyChanged
sur le PersonModelView
, pasAddress
. Je crois avoir deux options: (1) changer la source de la liaison (ou changer le DataContext
) à la propriété Address
ou (2) ont la PersonModelView
poignée PropertyChanged
sur l'objet Address
et Refire son propre PropertyChanged
avec quelque chose comme Address.City
.
Comment allez-vous résoudre ce problème? (J'utilise MVVM light toolkit au mo, mais je suis intéressé par toutes les approches)
J'accepte. Je n'ai jamais eu à propager des événements quand un champ d'un niveau ou deux vers le bas a été lié. Essayez de déclencher 'PropertyChanged' avec' null' comme nom de propriété et placez un point d'arrêt dans le setter de votre propriété pour vous assurer que la liaison fonctionne (ou vérifiez la fenêtre de sortie). –
C'est un vrai soulagement, ça devrait rendre mon code beaucoup plus agréable. Je suppose que je dois avoir fait une erreur quand j'ai essayé pour la première fois, je l'ai fait à nouveau dans une nouvelle solution et ça fonctionne très bien. Merci pour l'aide les gars! – Geoff