Irgendwelche MVVM-Frameworks, die mit RoutedCommand gut funktionieren?

9

RoutedCommand und RoutedUICommand haben viel zu bieten. Es gibt eine eingebaute Unterstützung für Text und Tastaturgesten. Sie können eine Auflistung von RoutedUICommands an die ItemsSource eines Menüs binden und automatisch Menüelemente für Sie erstellen und binden. Einige Befehle (Ausschneiden, Kopieren, Einfügen) werden automatisch von den vordefinierten Steuerelementen unterstützt.

Immer, wenn ich MVVM benutze, habe ich herausgefunden, dass Routing-Befehle schlecht passen, wegen der wiederholenden Standard-XAML und Codebehind, die ich für jeden schreiben muss. Wenn ich MVVM mache, habe ich normalerweise RelayCommand anstelle von gerouteten Befehlen verwendet. Dies ist manchmal eine angemessene Problemumgehung, hat aber Nachteile - zum Beispiel werden Tastengesten viel komplizierter .

Aber nachdem ich Rob Eisenbergs "Build your own MVVM Framework" -Sitzung gesehen habe, bin ich nicht mehr zufrieden mit Relais Befehle und ihre Mängel. Das einzige Problem mit gerouteten Befehlen war der repetitive Boilerplate-Code, und sobald Sie diesen repetitiven Code in ein Framework einbeziehen und Konventionen anwenden, scheint es keinen Grund mehr zu geben, keine gerouteten Befehle in MVVM zu verwenden.

Technisch sieht es so aus, als wäre das nicht schwer. Das Framework sollte nur an den CommandManager.CanExecute und Ausgeführt Ereignisse und wenden Sie Konventionen an, um nach Methoden zu suchen und Eigenschaften im ViewModel - zum Beispiel, wenn der Befehl Ausschneiden ausgeführt wird, suchen Sie nach einer ExecuteCut-Methode (und der CanExecuteCut-Eigenschaft) im ViewModel. Ich könnte mein eigenes MVVM-Framework erstellen, das dies einfach macht.

Aber meine Frage ist, gibt es bereits MVVM-Frameworks, die mit RoutedCommand arbeiten? Das einzige MVVM-Framework, das mir vertraut ist, ist Caliburn.Micro, und es unterstützt derzeit nicht routed Befehle auf diese Weise (was mich überrascht, da es seinen eigenen Geschmack der Aktion sprudelnd unterstützt).

    
Joe White 21.11.2010, 01:01
quelle

2 Antworten

2

mit viel Forschungsmarathon in SO und anderen Seiten, hat mit ROUTEdCommand keinen passenden Rahmen für PLAY gefunden.

aber einer der WPF-Schüler Josh Smith hat eine nette Lösung für die Verwendung von Routed Command mit MVVM implementiert.

Sie können die Verwendung von RoutedCommands mit einem ViewModel in WPF überprüfen, die als sauber und leicht eingestuft wird Verwenden Sie RoutedCommands in der MVVM-Architektur.

    
Binil 11.01.2011 14:33
quelle
1

Wenn ich mich richtig erinnere, hat Sacha Barber etwas in diese Richtung getan, ich denke, Sie könnten hier nachsehen.

    
Felice Pollano 10.01.2011 13:00
quelle