Question

Je sais que certains cadres MVVM qui a introduit dans ce fil

S'il vous plaît décrire ou me donner le lien pour que ce qui leur est utile? pas d'informations sur MVVM au sujet du cadre MVVM. Merci :) je veux savoir : Qu'est-ce Cadre MVVM?

Était-ce utile?

La solution

Je pense que votre question n'est pas vraiment précis. Pour autant que je comprends, vous demandez les caractéristiques de chaque cadre?

Vous trouverez des informations détaillées ici et ici . Cependant, au moins un de ces liens a déjà été donné dans le fil que vous avez mentionné ...

EDIT: En gros, un cadre MVVM est une collection de classes qui sont couramment utilisés dans les applications utilisant le modèle MVVM (Model-View-ViewModel). Cela peut inclure des systèmes de messagerie pour communiquer entre parties indépendantes d'un logiciel, les techniques d'injection de dépendance, classes de base pour ViewModels, des modèles de projet / classe, les mécanismes de validation, les commandes couramment utilisées, les techniques d'affichage des boîtes de dialogue, et ainsi de suite ...

Pour bien comprendre ce cadre, vous devez comprendre le modèle MVVM premier. Parce que seulement alors (ou même seulement une fois que vous avez fait votre premier projet MVVM), vous aurez une bonne compréhension des problèmes et / ou défis de ce modèle.

Autres conseils

Pour utiliser le cadre MVVM tout simplement suivre étapes ci-dessous:

  1. Vous avez un modèle et une vue modèle avec le même nom.

Voir-modèles ne sont pas censés être des emballages autour des modèles. Le travail d'un point de vue-modèle est aux demandes de courtage pour les services externes tels que le chargement et l'enregistrement des données. Les données elles-mêmes, ainsi que la validation et la plupart de la logique d'affaires, devrait être dans les modèles.

Je ne peux insister assez sur ce point. Chaque fois que vous créez une vue-modèle qui enveloppe un modèle par délégation vous introduisez un énorme trou dans votre API. Spécialement, quoi que ce soit avec une référence directe au modèle peut changer une propriété manière telle que la vue modèle et donc l'interface utilisateur ne sont jamais avisés. De même, toute modification des champs calculés dans le modèle ne seront pas propagées revenir à la vue modèle.

  1. Vous avez une vue et une vue modèle du même nom.

vue-modèles Idéalement agnostiques aux écrans, ils sont utilisés par. Cela est particulièrement vrai dans une application WPF où plusieurs fenêtres peuvent partager la même instance d'une vue modèle.

Pour les applications plus petites, vous ne pouvez avoir besoin d'une vue unique modèle pour toute l'application. Pour des applications plus importantes, vous devrez peut-être un pour la fonctionnalité principale et un pour chaque aspect secondaire telles que la gestion de configuration.

  1. Vous avez pas de code derrière.

Dans derrière le code de valeur absolue est ni une bonne ni une mauvaise chose. Il est simplement un endroit à la logique mis spécifique à une seule vue ou le contrôle. Alors, quand je vois une vue sans code-behind à tout ce que je vérifie immédiatement les erreurs suivantes:

  • Est-ce que les contrôles spécifiques tactile vue-modèle par son nom?
  • Est-ce le point de vue-modèle étant donné l'accès aux commandes via un paramètre de commande?
  • EventToCommand est ou un autre comportement qui fuit utilisés à la place du gestionnaire d'événements simple?

EventToCommand de MVVM Light est particulièrement mauvaise car elle empêchera les contrôles d'être recueillis après les déchets sont retirés de l'écran.

  1. Voir-modèles sont à l'écoute de propriété notifications modifiées

Si un modèle a une plus longue durée de vie, alors la vue modèle qui écoute à ses événements alors vous avez probablement une fuite de mémoire. A la différence des vues qui ont un événement à vide, vue-modèles ne sont pas une bonne histoire pour la gestion du cycle de vie. Donc, s'ils attachent un événement à un modèle qui peut out-dernier alors les seront divulgués le point de vue modèle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top