2009-07-13 7 views
0

Ich habe kürzlich in Prism (aka die Composite Application Library für WPF) geschaut und mag die Art, wie ich meine Apps damit strukturieren kann.Bietet Prism (CAL) eine Möglichkeit, einen Befehl beispielsweise an ein MouseClick-Ereignis zu binden?

Allerdings gibt es einen Nachteil, den ich einfach nicht lösen konnte. Ist es möglich, einen Befehl (z. B. von einem ViewModel) über Prism an ein Event (z. B. RightMouseButtonDown) zu binden?

Dies wäre eine Schlüsselanforderung an die Anwendung, die ich versuche zu bauen, und es wäre eine Schande, wenn ich Prism nicht nur wegen dieser fehlenden Funktion verwenden könnte.

Mit freundlichen Grüßen, crischu

Antwort

0

Es ist zwar nicht Teil von Prism ist, können Sie die AttachedBehaviours von Marlon Grech verwenden können.

2

Das ist nicht Teil von Prism ist, aber Sie können mit dem folgenden Code-Eingabe-Handler am Fenster Ebene in WPF definieren: in seiner aktuellen Datacontext (das Ansichtsmodell

<Window.InputBindings> 
    <MouseBinding MouseAction="RightClick" Command="RightClickCommand"/> 
</Window.InputBindings> 

Es wird dann löst die RightClickCommand definiert für das Fenster), wenn die RightMouse innerhalb des Fensters angeklickt wird und nicht von einem anderen Steuerelement im logischen Baum erfasst wird - das Ereignis wird direkt aus der Steuerung unter der Maus ausgelöst.

+0

Problem mit diesem ist, können Sie Bindung auf Ihrem Befehl oder CommandParameter nicht verwenden – Schneider