Considérons une application qui est implémentée en utilisant MVVM, dans laquelle l'utilisateur entre des données.
Lorsque l'utilisateur sélectionne "ouvrir un fichier", "nouveau fichier", etc., l'application demande à l'utilisateur s'il souhaite enregistrer les données dans un fichier avant d'invoquer la commande demandée. Toutefois, si l'utilisateur n'a modifié aucune donnée depuis la dernière sauvegarde, l'application doit ignorer cette question et continuer directement à appeler la commande. Notez que seules les propriétés qui appartiennent au modèle doivent changer d'état. Par exemple, si l'utilisateur a modifié l'élément sélectionné dans une liste (qui modifie la machine virtuelle), il n'est pas nécessaire de l'enregistrer.Besoin d'un bon moyen de gérer l'état - les données ont-elles changé depuis la dernière sauvegarde - sous MVVM
Comment implémenteriez-vous une telle exigence?
L'élévation manuelle d'un événement à chaque modification d'une propriété dans la machine virtuelle semble fastidieuse et source d'erreurs.
Merci, Elad
N'êtes-vous pas déjà levant un événement dans la VM chaque fois qu'une propriété change - l'événement PropertyChanged? Les Viewmodels ne fonctionnent pas très bien si vous ne le faites pas ... –
L'événement PropertyChanged n'est déclenché que lorsque la VM modifie la vue. Toutefois, lorsque l'utilisateur entre des données, il modifie la vue et la liaison modifie la machine virtuelle sans déclencher l'événement PropertyChanged. – Elad
Pouvez-vous s'il vous plaît coller un exemple de votre classe viewmodel? Dans tous les MVVM que j'ai vus, quand la vue change un viewmodel, PropertyChanged est déclenché ... –