2010-11-21 12 views
9

RoutedCommand y RoutedUICommand tienen mucho para ellos. Hay soporte integrado para texto y gestos de teclado. Puede vincular una colección de RoutedUICommands a ItemsSource del menú y automáticamente creará y vinculará elementos de menú para usted. Algunos comandos (Cortar, Copiar, Pegar) son automáticamente compatibles con controles listos para usar.Cualquier framework MVVM que funcione bien con RoutedCommand?

Sin embargo, cada vez que uso MVVM, he encontrado que los comandos enrutados son un mal ajuste, debido a la repetitiva repetición de XAML y código subyacente que tengo que escribir para cada uno. Cuando estoy haciendo MVVM, generalmente terminé usando RelayCommand en lugar de comandos enrutados. Esta es una solución adecuada de vez en cuando, pero tiene inconvenientes, por ejemplo, los gestos de teclas se convierten en much more complicated.

Pero después de ver la sesión "Build your own MVVM Framework" de Rob Eisenberg, ya no estoy satisfecho con los comandos de retransmisión y sus fallas. El único problema con los comandos enrutados era el código repetitivo repetitivo, y una vez que factorizas ese código repetitivo en un marco y aplicas las convenciones, ya no parece haber ninguna razón para no usar comandos enrutados en MVVM.

Técnicamente, parece que esto no sería difícil. El marco solo debe vincularse a los eventos CommandManager.CanExecute y Executed de la vista y aplicar convenciones para buscar métodos y propiedades en ViewModel; por ejemplo, cuando se ejecuta el comando Cortar, busque un método ExecuteCut (y la propiedad CanExecuteCut) en el ViewModel. Pude construir mi propio marco MVVM que lo hizo fácil.

Pero mi pregunta es, ¿ya hay marcos MVVM que funcionan con RoutedCommand? La única estructura MVVM con la que estoy familiarizado en profundidad es Caliburn.Micro, y actualmente no admite comandos enrutados de esta manera (lo que me sorprende, ya que admite su propio sabor de burbujas de acción).

Respuesta

1

Si no recuerdo mal, Sacha Barber hizo algo en esa dirección, creo que podría echar un vistazo here.

+1

Su sitio web no dice nada sobre eventos enrutados. Eché un vistazo rápido a través del código fuente, pero no parece que haya nada relevante allí. –

2

con mucho maratón de investigación en SO y otros sitios, no encontré ningún marco adecuado para JUGAR con RoutedCommand.

pero uno de los WPF Disciple Josh Smith ha implementado una buena solución para usar el comando enrutado con MVVM.

puede marcar Using RoutedCommands with a ViewModel in WPF, que se declara como limpio y ligero para utilizar RoutedCommands en la arquitectura MVVM.

Cuestiones relacionadas