J'ai vu beaucoup de discussions à propos de cette question, mais peut-être que je suis juste trop d'un débutant pour l'obtenir. Si j'ai une collection observable qui est une collection de « PersonNames » comme dans l'exemple msdn (http: //msdn.microsoft.com/en-us/library/ms748365.aspx), je reçois des mises à jour à mon avis, si un PersonName
est ajouté ou supprimé, etc. Je veux une mise à jour mon avis quand je changez également une propriété dans le PersonName
. Comme si je change le prénom. Je peux implémenter OnPropertyChanged
pour chaque propriété et avoir cette classe dérive de INotifyPropertyChanged
et cela semble être appelé comme prévu. Ma question est, comment la vue obtient-elle les données mises à jour à partir du ObservableCollection
comme la propriété a changé ne provoque aucun événement pour le ObservableCollection
. C'est probablement quelque chose de vraiment simple mais pourquoi je n'arrive pas à trouver un exemple me surprend. Quelqu'un peut-il faire la lumière sur ce point pour moi ou avoir des indications sur des exemples que je serais très reconnaissant. Nous avons ce scénario à plusieurs endroits dans notre application WPF actuelle et nous avons du mal à le comprendre.ObservableCollection et Item PropertyChanged
« En général, le code pour l'affichage des données ajoute un gestionnaire d'événements PropertyChanged
à chaque objet actuellement affiché à l'écran. »
Quelqu'un pourrait-il me donner un exemple de ce que cela signifie? Ma vue se lie à mon ViewModel
qui a un ObservableCollection
. Cette collection est constituée d'un RowViewModel
dont les propriétés prennent en charge l'événement PropertiesChanged
. Mais je n'arrive pas à comprendre comment mettre la collection à jour pour que ma vue soit mise à jour.
Merci. J'utilise WPF et ai un DataGrid dont ItemsSource lie en XAML à ObservableCollection. Donc, j'ai besoin d'ajouter du code quelque part dans mon ViewModel pour gérer l'événement PropertyChanged afin que la vue à savoir pour mettre à jour le DataGrid? Et puis dois-je supprimer et ajouter l'élément à la collection pour l'obtenir la vue pour le mettre à jour? Cela semble contre-intuitif (mais cela ne signifie pas que ce n'est pas correct :) –
Le DataGrid le fait automatiquement si les éléments de ObservableCollection implémentent INotifyPropertyChanged (ou sont DependencyObjects). – Goblin