Je n'arrive pas à comprendre comment faire en sorte que le modèle de vue soit averti des changements dans le modèle sans ajouter un tas de choses spécifiques à l'interface utilisateur comme INotifyProperyChanged et INotifyCollectionChanged dans mon modèle ou créer des tonnes d'événements différents et faire un tas de choses Ils ont l'impression qu'ils sont spécifiques à l'interface utilisateur et devraient rester en dehors du modèle.Comment maintenir la logique de vue hors du modèle et de la logique métier hors du modèle de vue dans MVVM?
Sinon, je devrais simplement dupliquer toute la logique métier dans le modèle de vue pour m'assurer que tout est à jour, et alors quel est le point d'avoir le modèle alors?
L'une des plus délicates que j'ai dans mon modèle est une propriété d'une classe "Catégorie". Vous pouvez le considérer comme une structure arborescente et la propriété est l'ensemble des descendants des nœuds. Eh bien dans le modèle que la propriété est générée à la volée récursivement à travers tous ses enfants, ce qui est très bien et bien. Le modèle de vue doit cependant se lier à cette propriété et doit savoir quand il change. Devrais-je simplement changer le modèle pour accommoder le modèle de vue? Si je le fais, alors le modèle de vue ne fait vraiment rien à ce stade, le modèle soulève toutes les notifications de changements nécessaires et la vue peut simplement lier directement au modèle. Aussi, si le modèle était quelque chose dont je n'avais pas la source, comment pourrais-je contourner cela?
En fait INotifyCollectionChanged fait partie de System.Collections.Specialized qui se trouve dans WindowsBase.dll. J'ai toujours trouvé ça bizarre. –
Bon point Cameron. Je trouve cela aussi déconcertant. Mise à jour de ma réponse en conséquence ... –
Hmm, je suppose que la seule fois où j'ai entendu parler d'eux est pour les tutoriels WPF à des fins de liaison de données, mais je suppose qu'il n'y a rien d'autre WPF à part qu'ils sont utilisés pour WPF. – Davy8