AutoCompleteBox: Validieren Sie nicht mit Up/Down -Tasten
-
26-10-2019 - |
Frage
Mein AutoCompleteBox ruft einen WCF -Dienst auf, wenn die Auswahl geändert wird, normalerweise mit der Maus. Wenn der Benutzer jedoch die Pfeiltasten verwendet, um durch die Auswahl zu navigieren, wird das Ereignis für jedes Element angezeigt, wodurch die Anwendung zu viel datenintensiv wird. Wie verhindern Sie, dass die automatische Vervollständigung der Tasten feuert, wenn die Schlüssel gedrückt werden?
Ich fand das, was wie eine schöne Lösung klang, aber es funktioniert nicht http://betaforums.silverlight.net/forums/p/137710/307786.aspx
Lösung
OK, anstatt AutoCompleteBox_SelectionChanged zu verwenden, verwende ich AutoCompleteBox_DropdownCloded, und dies hat das Problem behoben.
Andere Tipps
Ich habe gerade gefunden, wie ich das gleiche Problem gelöst habe. Außerdem verwende ich SelectionChanged nicht.
Ich habe ein Verhalten zu Element DataTemplate hinzugefügt (zum Raster -Root). Dieses Verhalten befestigen Klick Handler zum Element. Wenn Tasten verwendet werden, ist das Verhalten "Schlafen". Wenn ich mit der Maus auf Element klicke, wird das Verhalten aufgerufen und erledigt seine Arbeit. (Außerdem bin ich die benötigte Eigenschaft des Elements an die Tag der DataTemplate -Raster -Tag -Eigenschaft, damit ich sie aus dem Verhalten einbeziehen kann.)
Nicht für jede Lösung geeignet, kann aber nützlich sein.