WPF MVVM - Enlace de comando dentro de un ItemsControl

Actualmente estoy convirtiendo un pequeño proyecto WPF a MVVM. tengo unList<CustomObject> en el ViewModel de la ventana principal a la que se vincula mi ItemsControl y usa un DataTemplate para construir la IU de cada elemento. Mi código anterior usaba un controlador de eventos dentro de la plantilla de datos para manejar un evento de clic. Quiero usar algún tipo de enlace de comando para eliminar mis controladores de eventos de código subyacente, pero el objeto de modelo DataContext de los elementos en mi ItemsControl es el modelo, por lo que actualmente no puedo enlazar a un ICommand desde el ViewModel.

Entonces, supongo que hay un par de formas de atacar esto y no estoy seguro de cuál sería la forma más "MVVM" de hacerlo. ¿Enlace el ItemsControl.ItemsSource a una colección de una nueva clase de ViewModel que represente a cada elemento? ¿O uso UserControls en lugar de un DataTemplate y luego puedo enlazar cada UserControl a su propia instancia de un ViewModel que lo representa? ¿O hay algún tipo de expresión de enlace que pueda usar para referirme al DataContext de la ventana para tener acceso al enlace de ViewModel (mientras escribo esto, simplemente suena mal, así que supongo un gran "NO" para esto?) idea)?

Además, a lo que quiero enlazar mi comando es el evento LeftMouseButtonUp de un control Grid. No hay un "comando" para una cuadrícula, así que estaba intentando usar InputBindings. Podría usar un comando estático (como uno de los ApplicationCommands integrados), pero no podría usar una expresión de enlace para enlazar a una instancia de ICommand que sea propiedad de ViewModel porque MouseBinding.Command no es una propiedad de dependencia.

Estoy bastante confundido sobre el tema del manejo de eventos en MVVM, por lo que cualquier información es apreciada.

Respuestas a la pregunta(3)

Su respuesta a la pregunta