2010-11-21 10 views
9

RoutedCommand e RoutedUICommand hanno molto da offrire. È disponibile il supporto per il testo e i gesti della tastiera. È possibile associare una raccolta di RoutedUICommands a ItemsSource di un menu e crea automaticamente e associa gli elementi del menu. Alcuni comandi (Taglia, Copia, Incolla) sono automaticamente supportati da controlli predefiniti.Qualche framework MVVM che funziona bene con RoutedCommand?

Tuttavia, ogni volta che utilizzo MVVM, ho trovato che i comandi di instradamento sono inadeguati, a causa del codice ripetitivo XAML e del codice che ho scritto per ognuno di essi. Quando eseguo MVVM, di solito mi sono ritrovato a utilizzare RelayCommand anziché i comandi indirizzati. Questa è una soluzione adeguata per alcune volte, ma presenta aspetti negativi: ad esempio, i gesti delle chiavi diventano much more complicated.

Ma dopo aver visto la sessione "Build your own MVVM Framework" di Rob Eisenberg, non sono più soddisfatto dei comandi di inoltro e dei loro difetti. L'unico problema con i comandi indirizzati era il codice boilerplate ripetitivo, e una volta che si calcola il codice ripetitivo in un framework e si applicano le convenzioni, non sembra esserci più alcun motivo per non utilizzare i comandi instradati in MVVM.

Tecnicamente, sembra che questo non sia difficile. Il framework dovrebbe solo collegarsi agli eventi CommandManager.CanExecute e Executed della vista e applicare le convenzioni per cercare metodi e proprietà su ViewModel, ad esempio, quando viene eseguito il comando Taglia, cercare un metodo ExecuteCut (e la proprietà CanExecuteCut) su il ViewModel. Potrei costruire il mio framework MVVM che ha reso questo facile.

Ma la mia domanda è, ci sono già framework MVVM che funzionano con RoutedCommand? L'unico framework MVVM che conosco a fondo è Caliburn.Micro e al momento non supporta i comandi indirizzati in questo modo (il che mi sorprende, poiché supporta il suo stesso sapore di azione spumeggiante).

risposta

1

Se ricordo bene, Sacha Barber ha fatto qualcosa in quella direzione, penso che potresti dare un'occhiata here.

+1

Il suo sito Web non dice nulla sugli eventi in routing. Ho dato una rapida occhiata al codice sorgente ma non sembra che ci sia qualcosa di rilevante lì. –

2

con molta maratona di ricerca in SO e altri siti, non ha trovato alcun framework appropriato per PLAY con RoutedCommand.

ma uno dei Dpf Discepoli Josh Smith ha implementato una buona soluzione di utilizzo di Routed Command con MVVM.

è possibile controllare Using RoutedCommands with a ViewModel in WPF, che è indicato come pulito e leggero per utilizzare RoutedCommands nell'architettura MVVM.

Problemi correlati