WPF MVVM - Commande de liaison à l'intérieur d'un ItemsControl

Je suis en train de convertir un petit projet WPF à MVVM. J'ai un List<CustomObject> dans le ViewModel de la fenêtre principale que mon ItemsControl se lie et utilise un DataTemplate pour créer l'INTERFACE utilisateur de chaque élément. Mon ancien code utilisé un gestionnaire d'événement à l'intérieur de la DataTemplate pour gérer un événement de clic. Je veux utiliser une sorte de liaison de commande pour éliminer mon code-behind de gestionnaires d'événements, mais le DataContext de mon ItemsControl est le modèle d'objet donc je ne peux pas actuellement de se lier à un ICommand à partir de ce Dernier.

Donc, je suppose qu'il ya un couple de façons d'attaquer et je ne suis pas sûr de ce qui serait le plus "MVVM" façon de faire. Puis-je lier le ItemsControl.ItemsSource à une collection d'une nouvelle classe ViewModel qui représente chaque élément? Ou dois-je utiliser les contrôles utilisateur au lieu d'un DataTemplate et puis je peux lier chaque UserControl à sa propre instance d'un ViewModel qui la représente? Ou est-il une sorte d'expression de liaison que je peux utiliser pour renvoyer au DataContext de la fenêtre pour avoir accès à lier le ViewModel (que je tape ce que, il semble juste mauvais, donc je suis en supposant un gros "NON" à cette idée)?

Aussi, ce que je veux lier mon commandement, c'est la LeftMouseButtonUp cas d'une Grille de contrôle. Il n'y a pas de "Commande" pour une Grille, j'ai été de tenter de l'utiliser InputBindings. Je pourrais utiliser un statique de la commande (comme celui de la construction dans le ApplicationCommands), mais je ne pouvais pas utiliser une expression de liaison pour lier à un ICommand instance qui est une propriété du ViewModel parce que MouseBinding.La commande n'est pas une DependencyProperty.

Je suis assez confus sur le sujet de la gestion des événements, MVVM, et que tous les info est apprécié.

source d'informationauteur Rich