10
votes

Modèles de conception utilisés dans WPF

suivi est excrucre de cet article sur mvvm. Quelqu'un peut-il fournir un exemple de la manière dont ces autres modèles (commandement, DI) sont utilisés dans WPF? Y a-t-il d'autres modèles de fine utilisés dans WPF que vous ne voyez pas dans la liste ICI?

Il y a d'autres modèles que vous devez être conscients de vous aider à MVVM. Des motifs tels que commandant (cuites au four dans le WPF, des solutions pour SL), le médiateur et la gasp injection de dépendance. .


4 commentaires

WPF et Silverlight sont assez similaires en termes de ces choses.


@BoltClock: Je ne sais pas comment votre réponse est liée à ma question. Pouvez-vous s'il vous plaît élaborer?


Pourriez-vous expliquer pourquoi vous posez cette question?


Tout en lisant l'article sur ces schémas, je viens de devenir curieux de savoir quels modèles sont utilisés dans WPF.


3 Réponses :


1
votes

Injection de dépendance de Setter:

Lorsque vous utilisez MVVM Vous devez injecter une instance de ViewModel Dans la vue en la réglant à la propriété View.DataContext: P>

var viewModel = new CustomViewModel();
var view = new CustomView();
view.DataContext = viewModel;


0 commentaires

1
votes

La liaison de données (entre la vue et la viewModel) utilise le motif d'observateur. En outre: le motif d'usine peut être utilisé pour instancier le point de vue, mais qui est facultatif.


0 commentaires

28
votes

J'ai écrit l'article sur certains d'entre eux: Modèles de conception WPF et Silverlight

Voici une brève description des motifs:

1) mvvm - utilisé comme convertisseur de modèle et en remplacement du code-derrière. Améliore la testabilité, il est beaucoup plus facile d'écrire des tests d'unité pour ViewModel.

2) Injection de dépendance - Utilisé pour améliorer la vérification de la qualification d'une classe (vous pouvez écrire des tests d'unité pour une classe spécifique séparément des autres) et pour la possibilité de modifier la mise en œuvre plus facile (modifier un enregistreur , fournisseur de cache, service Web, etc.)

3) commande peut être appliqué sur les commandes de bouton et de menuitem par défaut, désactive les contrôles si une action ne peut pas être exécutée. Également utilisé dans le modèle MVVM comme remplacement des événements de code-derrière.

Autres modèles du livre classique déjà utilisé dans WPF:

  • singleton. La classe d'application dans WPF et la classe httpcontext dans les formes Web.
  • Adaptateur. Le moteur de liaison de données, qui utilise l'iValueconverter Interface pour convertir des valeurs de liaison pour l'interface utilisateur.
  • décorateur. La classe frontalière, qui décore toute classe d'uielement avec une bordure d'épaisseur et de couleur variable.
  • façade. La classe PrintDialog, qui fournit une interface simple qui vous permet d'utiliser l'intégralité du sous-système d'impression et de document ce WPF fournit.
  • commande. L'interface ICommand, qui est mise en œuvre par le RoutedCommand et routéduicommand classes.
  • Itérateur. L'interface d'ienumerator, qui de nombreuses collections et listes dans la mise en œuvre de .NET Framework.
  • Observer. L'interface et les événements d'InotifyPropertyChanged.

0 commentaires