Je suis nouveau dans MVVM. Je viens d'apprendre ce modèle et je veux l'utiliser dans mon projet. Je suis déjà comprendre le principe de fonctionnement de ce modèle et j'ai appris comment utiliser les commandes. Mais j'ai des questions sur la façon de gérer les événements d'un autre contrôle, par exemple l'événement ListBox SelectionChanged. ListBox n'a pas d'attribut CommandeComment gérer les événements dans MVVM
Répondre
Vous n'avez souvent pas besoin de le faire. Par exemple, vous pouvez simplement lier le modèle SelectedItem
propriété à une propriété sur votre vue d » ListBox
:
<ListBox ItemsSource="{Binding Customers}" SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"/>
Non seulement cela vous donne accès au client sélectionné dans votre modèle de vue, il permet également à votre modèle de vue pour dicter le client sélectionné en définissant la propriété elle-même.
Il existe également d'autres techniques pour "éviter" la gestion directe des événements dans votre code-behind. Par exemple, les comportements attachés. Cependant, vous ne devriez pas avoir peur de gérer les événements directement si le code est uniquement concerné par la vue et rend votre code plus simple.
Idée intéressante. Par exemple, je veux gérer l'événement Mouse RightClick sur DataGrid. Dans ce cas dois-je écrire gestionnaire dans le code derrière ou dois-je utiliser le comportement ci-joint? – Polaris
@ Polaris. regardez les frameworks mvvm (cinch, mvvm light ...) là-bas. Vous trouverez des implémentations telles que EventToCommand Behavior dans laquelle vous pouvez lier des événements à des commandes. et comme kent dit: n'hésitez pas à utiliser codebehing lors du codage des choses liées à la vue :) par exemple BringToView l'élément sélectionné dans une grille – blindmeis
+1 pour le commentaire sur la gestion des événements lorsqu'ils affectent uniquement la couche de vue. Tant de gens oublient ça ... –
Pour ajouter un attribut de commande à votre contrôle, il doit hériter de ICommandSource. Vérifiez this poste, pour voir comment c'est accompli.
Le BookLibraray demande du WPF Application Framework (WAF) montre comment écouter les événements WPF dans un Model-View-ViewModel (MVVM) application conçue. Il permet à un utilisateur de sélectionner plusieurs livres afin qu'il puisse tous les supprimer à la fois. Voir la classe BookLibrary.Presentation.Views.BookView.
- 1. Gestion des événements simples dans MVVM
- 2. comment définir les événements dans le modèle MVVM dans Silverlight
- 3. Comment gérez-vous les événements 'SelectedItemChanged' dans un MVVM ViewModel?
- 4. WPF Événements MVVM routés
- 5. C# Gérer les événements Windows
- 6. Gérer les événements client dans Asp.net AJAX
- 7. Comment gérer l'événement WEP DataGrid CellEditEnding dans MVVM?
- 8. MVVM et événements
- 9. Comment gérer plusieurs événements par modèle de commande w/command en utilisant MVVM dans Silverlight?
- 10. Comment gérer les événements EndProcess dans une application Vista Console?
- 11. Comment dois-je gérer les événements clés dans J2ME?
- 12. Comment gérer les événements externes et internes dans j2me
- 13. Comment gérer les événements Click Click dans jQuery?
- 14. Comment gérer les événements Windows XP ou VISTA dans JAVA
- 15. Comment gérer les barres d'outils avec mvvm et WPF
- 16. Une bonne approche des événements dans MVVM
- 17. comment exécuter des événements dans le modèle mvvm pour silverlight
- 18. Cisco IP Phone Call gérer les événements
- 19. ACE Flex 3: Gérer les événements Cadre
- 20. Comment élever des événements Jquery et les gérer?
- 21. WPF Événements et références aux objets, et comment les gérer
- 22. Comment gérer tous les événements d'une page Web
- 23. Add-in Outlook. Comment gérer les événements d'événements
- 24. Comment gérer les événements de membres d'une autre classe/instance
- 25. Comment gérer les événements de progression avec GeckoFX
- 26. C# Événements sans arguments. Comment puis-je les gérer?
- 27. Meilleure façon de gérer les événements chronométrés dans PyGame
- 28. Comment gérer correctement les événements de clic sur Widget
- 29. Comment gérer les événements à partir des boutons du navigateur
- 30. comment gérer les événements de bouton ajoutés par programme? C#
Je ne l'ai pas utilisé, mais vous pouvez utiliser CollectionView ou CollectionViewSource pour activer MVVM sur divers contrôles de type de collection. –