Hotkey-Befehle für Silverlight in MVVM?

8

Ich versuche, Befehle basierend auf Tastenanschlägen in Silverlight auszulösen. Wie ich es verstehe, können Sie AccessKey oder AcceleratorKey nicht in Silverlight verwenden. Es sieht auch so aus, als ob die angehängte Eigenschaft InputBindings auch nicht funktioniert.

Ich fing an, an anderen Orten zu suchen. Es sah so aus, als ob Prism die Art war, Befehle in Silverlight arbeiten zu lassen, also überprüfte ich das. Sie haben jedoch nur einen Click-Handler, der nicht einmal ein nützlicher Ausgangspunkt für die Einrichtung von Tastaturbefehlen ist.

Vermisse ich gerade einen Teil von Prism? Oder gibt es eine gute Standardmethode zum Behandeln von Hotkeys mit MVVM Silverlight?

    
RandomEngy 25.09.2009, 15:46
quelle

3 Antworten

9

Es klingt, als ob Sie nach einer "codelosen" MVVMish-Art suchen, das KeyUp / KeyPress / KeyDown-Ereignis zu behandeln.

Option # 1: Prisma.
Sie haben es nur mit dem Click-Befehl ships erwähnt. Sie können jedoch eigene angehängte DPs hinzufügen, um Befehle für jedes beliebige Ereignis zu aktivieren (wie KeyUp / KeyDown / KeyPress).

Wenn Sie ein Beispiel dafür suchen, dass Corey ein gutes für ToggleButton.Checked / Ungeprüfte Ereignisse hat.
Ссылка

%Vor%

Außerdem hat Erik Mork ein exzellentes Video, das Ihnen einen guten Überblick über Befehle und die Erstellung eines benutzerdefinierten Befehls Attached DP gibt. Ссылка

Option # 2: Mischungsauslöser
Das Expression Blend-SDK wird mit Triggern und Verhalten ausgeliefert, die genau das tun, was Sie vorhaben.
Mischbeispiele Codeplex-Projekt wird mit einem EventTrigger ausgeliefert, den Sie verwenden können:

%Vor%

Oder Sie könnten Ihre eigenen benutzerdefinierten Trigger für Key-Schlaganfall-Ereignisse erstellen und tun, was immer Sie möchten. Hier ist ein Beispiel:
Ссылка

    
JustinAngel 29.09.2009, 00:41
quelle
0

Meinst du wie Strg + v oder so Ich habe das folgende Beispiel auf der MSDN-Website gesehen.

%Vor%     
Tzury Bar Yochay 28.09.2009 16:31
quelle
0

Das MVVM-Toolkit enthält ein interessantes Beispiel CommandReference class, mit der Sie InputBindings an ViewModel-Befehle binden können. Ich bin mir nicht sicher, ob es für Silverlight funktioniert, aber Sie können es versuchen ...

OK, wie RandomEngy darauf hinwies, gibt es in Silverlight keine InputBindings ...

Ich glaube jedoch, dass Sie anhängendes Verhalten verwenden könnten. Es ist eine Möglichkeit, ein Ereignis an einen Befehl des ViewModel zu "binden". Marlon Grech hat eine gute Implementierung hier

    
Thomas Levesque 28.09.2009 16:35
quelle

Tags und Links