2012-07-12 23 views
7

En el contexto del patrón MVVM de Microsoft y su mando/control de eventos aspectos consideran que estoy haciendo tanto la unión de un comando a un control (por ejemplo un botón) y la suscripción al evento Click del control.¿Qué viene primero - Command or EventHandler?

¿Hay alguna regla general lo que la acción tiene lugar primero - el procesamiento del código asociado con el comando o el asociado con el controlador de eventos correspondiente?

+0

Supongo que la mayor pregunta es por qué harías ambas cosas. La clave de usar comandos es que normalmente vincularías esto a un ICommand en un ViewModel, y al hacer esto, la VM no necesita saber nada sobre el Botón. ¿Es este un caso de mezclar código y una máquina virtual? Si está utilizando una VM, ¿cómo se vincula al evento de botones? – stevethethread

+1

@SteveSolomon Bueno, estoy tratando de lidiar con la creación dinámica de controles durante el tiempo de ejecución. Y para respetar el patrón MVVM, trato de dejar todo el código necesario en la vista. Por lo tanto, actualmente estoy utilizando el enlace de comandos para la conexión entre VIEW/VIEWMODEL y EventHandlers para la manipulación 'Inter-VIEW'. –

+0

No creo que sea específico. Pienso * de primera mano que el primero en suscribirse al evento se levantará primero. Si el comando está conectado en el XAML, espero que se suscriban primero. Pero, hay más de una manera de despellejar a un gato. –

Respuesta

5

EventHandlers se desencadenan antes del ICommand enlazado.

+2

Esto es correcto. Ocasionalmente he hecho ambas cosas antes cuando quiero que se produzca alguna comprobación específica de la vista antes de procesar el comando. Si la verificación falla, el evento puede cancelar el comando. – Rachel

+0

Muchas gracias. –