Ich habe eine sehr einfache Lösung gefunden. Ersetzen Sie einfach die Registrierungssyntax für den Ereignishandler
%Vor% mit der AddHandler
-Syntax
Auf diese Weise kann das magische boolesche handledEventsToo
-Argument angegeben werden.
Dies wird auch gehandhabte Ereignisse behandeln.
Nun, das größere Problem hier ist, dass wenn Sie auf die Zeilen eines DataGrid klicken, MouseLeftButtonDown nicht ausgelöst wird, da dieser Klick auf Zeilenebene behandelt wird.
Ich habe es schon lange aufgegeben, direkt mit einigen Steuerelementen umzugehen. Ich habe meine eigene abgeleitete Version von DataGrid, DataForm und so weiter. Das macht meine Lösung einfach zu implementieren, da ich die Vanilla-Versionen sowieso nicht verwende.
Ich habe ein neues Ereignis namens ClickIncludingHandled hinzugefügt, das ein bisschen wortreich ist, aber es beschreibt genau, was vor sich geht und wird direkt darunter angezeigt. Klicken Sie auf IntelliSense - wenn das Steuerelement ein Click-Ereignis hat.
Wie auch immer, unten ist meine Implementierung davon. Sie können dieses Ereignis dann abonnieren und mithilfe von ClickCount ermitteln, wie viele Klicks erfasst werden sollen. Ich habe bemerkt, dass es ein bisschen langsam ist, aber es funktioniert sauber.
%Vor%Nicht 100% sicher, dass dies das Problem ist, aber ich bemerke, dass Pete Browns Beispiel stattdessen MouseLeftButtonDown verwendet:
Ich stieß auf genau dieses Problem. Ich konnte es nicht auf eine vernünftige Art und Weise lösen, also arbeitete ich so herum:
%Vor%Es ist schmutzig, aber es funktioniert.
Tags und Links .net c# silverlight