J'ai une application qui a une interface similaire à Visual Studio, en ce qu'il y a une liste de documents qui peuvent être ouverts, édités et sauvegardés. Chaque document peut être de différents types et a différents éditeurs. J'ai également un général Enregistrer MenuItem
. Ce que je veux faire est que la commande Enregistrer enregistre uniquement le document actif. Existe-t-il un modèle standard utilisant MVVM pour connecter les documents VM à l'enregistrement MenuItem
?MVVM Design pour l'application Multi Document?
2
A
Répondre
1
Je ne sais pas d'une manière standard, mais je voudrais essayer quelque chose comme ce qui suit:
- Créer une interface qui a un talon pour votre commande SaveDocument.
- Possédez l'interface de ViewModel de votre document.
- Avoir votre application principale qui a la liste des documents actuels ont une propriété qui renvoie le document viewmodel sur lequel l'utilisateur est actuellement concentré. Appelez-le CurrentDocument pour l'amour. Laissez la liaison de données WPF définir ceci quand ils passent de doc à doc.
- Avoir votre commande d'enregistrement utiliser la propriété CurrentDocument pour obtenir le document. vérifie qu'il n'est pas nul et implémente l'interface appropriée. Si toutes les vérifications réussissent, appelez la commande SaveDocument pour le document ViewModel.
Yep. C'est ce que j'ai fini par faire puisque je n'ai pas eu de réponse. +1 –
La seule différence est que les menus viewmodel dispose d'une commande de sauvegarde I bind, de sorte que s'il n'y a pas de document sauvable, la commande save par défaut est utilisée (qui ne fait rien.) Quand le document change, je règle la commande menu viewmodel à la commande de documents sauvables, ou la valeur par défaut. –