Je suis en total désaccord avec l'idée que le Modèle ne doit pas mettre en œuvre l' INotifyPropertyChanged
. Cette interface n'est pas de l'INTERFACE utilisateur spécifique! Il informe simplement d'un changement. En effet WPF fortement l'utilise pour identifier les changements, mais cela ne signifie pas qu'il est une interface utilisateur.
Je le comparerais le commentaire suivant "Un pneu est un accessoire de voiture". Assurez-vous qu'il est, mais les vélos, les bus, etc également l'utiliser. En résumé ne pas prendre cette interface une INTERFACE chose.
Cela dit, il n'est pas nécessaire, les moyens, je ne belive dans le Modèle de fournir des notifications. En fait, en règle générale, le modèle ne doit pas implémenter cette interface, sauf si cela est nécessaire. Dans la plupart des cas où aucun serveur de données est poussé à l'application cliente, le modèle peut être obsolète. Mais si l'écoute des données sur les marchés financiers, alors je ne vois pas pourquoi le modèle ne peut pas mettre en œuvre l'interface. Comme un exemple, que faire si j'ai un non-logique de l'INTERFACE utilisateur comme un service qui s'reçoit un cours acheteur ou vendeur pour donner de la valeur, il émet une alerte par le biais d'un e - mail ou passe une commande, alors que cela pourrait être une solution propre.
Cependant, il existe différentes façons de réaliser des choses, mais je serais toujours en faveur de la simplicité et d'éviter la redondance.
Ce qui est mieux? La définition des événements sur une collection de ou des changements de propriété sur la vue-modèle et à la propager au modèle ou d'avoir le point de vue intrinsèque à jour du modèle (par le biais de la Vue-Modèle)?
Bas de ligne à chaque fois que vous voyez quelqu'un qui prétend que "vous ne pouvez pas faire ceci ou cela" c'est comme un signe qu'ils ne savent pas de quoi ils parlent.
Cela dépend vraiment de votre cas, et en fait MVVM est un cadre avec beaucoup de questions et je suis encore à voir un commum de mise en œuvre de MVVM travers le conseil d'administration.
Je souhaite avoir plus de temps à expliquer les nombreuses saveurs de MVVM et des solutions à des problèmes communs - pour la plupart fournis par d'autres développeurs, mais je suppose que je vais avoir à faire à un autre moment.