WPF - Gestion des événements du contrôle utilisateur dans Afficher le modèle
Je suis en train de construire une application WPF utilisant le pattern MVVM (les deux sont nouvelles technologies pour moi). J'ai utiliser les contrôles de l'utilisateur pour de simples morceaux de réutilisables fonctionnalités qui ne contient pas de logique métier, et le pattern MVVM pour construire la logique de l'application. Supposons qu'un point de vue contient mon contrôle de l'utilisateur qui déclenche des événements, et je veux ajouter un gestionnaire d'événements pour l'événement. Ce gestionnaire d'événement doit être dans le modèle de vue de la vue, car il contient la logique métier. La question est-à – vue et le modèle de vue sont reliés uniquement par liaison; comment puis-je connecter un gestionnaire d'événement à l'aide de la liaison? Est-il même possible (je pense que non)? Si non comment dois – je gérer les événements d'un contrôle dans le modèle de vue? Je devrais peut-être l'utilisation de commandes ou de INotifyPropertyChanged?
source d'informationauteur Vitaly
Vous devez vous connecter pour publier un commentaire.
Généralement parlant, c'est une bonne MVVM-pratique pour éviter de code dans le code derrière, comme ce serait le cas si vous utilisez les événements dans votre commandes de l'utilisateur. Ainsi, lorsque possible, utiliser
INotifyPropertyChanged
etICommand
.Avec cela dit, en fonction de votre projet et de façon pragmatique, vous êtes, quelques fois il est plus logique d'utiliser le code du contrôle derrière.
J'ai à quelques reprises utilisé quelque chose comme ceci:
Vous pourriez aussi envisager de Joint De Commande De Comportementplus d'infos à ce sujet et les implémentations de trouver ici:
Le tir d'une double cliquez sur l'événement à partir d'un WPF élément de liste en utilisant MVVM
Également prendre un coup d'oeil à la question Comment puis-je Ajouter une Nouvelle Commande pour un Contrôle de l'Événement
À l'aide de ICommand dans MVVM avec XAML.
http://johnpapa.net/5-simple-steps-to-commanding-in-silverlight
(MVVM doit avoir été acronyme avait en VVMM: la Vue, la Vue du Modèle, de Modèle, regarde aussi de mieux 🙂 )