Ich möchte etwas Code ausführen, wenn der Benutzer auf einen gegebenen ListBox
Artikel einzeln klickt. Mein Setup ist ein ListBox
mit einem benutzerdefinierten ItemsPanelTemplate
(Pavan's ElementFlow). Basierend auf den Positionsdaten, die in MouseLeftButtonDown
enthalten sind, gibt es eine Möglichkeit zu sagen, auf welches Objekt geklickt wurde? Dies wird durch die benutzerdefinierte ItemsPanelTemplate
etwas schwieriger (oder verwirrender) gemacht.Holen Sie sich ein WPF-ListBox-Element von MouseLeftButtonDown
2
A
Antwort
11
Sie können eine ItemContainerStyle haben und eine Eventsetter darin angeben:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<EventSetter Event="MouseLeftButtonDown" Handler="ListBoxItem_MouseLeftButtonDown" />
...
Dann wird in dem Handler des Mouseleftbuttondown, der "Sender" wird die ListBoxItem sein.
AUCH, wenn Sie diese Methode nicht verwenden möchten, können Sie HitTest rufen Sie das Visual-Objekt an einer bestimmten Position, um herauszufinden:
HitTestResult result = VisualTreeHelper.HitTest(myCanvas, pt);
ListBoxItem lbi = FindParent<ListBoxItem>(result.VisualHit);
public static T FindParent<T>(DependencyObject from)
where T : class
{
T result = null;
DependencyObject parent = VisualTreeHelper.GetParent(from);
if (parent is T)
result = parent as T;
else if (parent != null)
result = FindParent<T>(parent);
return result;
}
Verwandte Themen
- 1. Holen Sie sich ein Zeilenergebnis von MySQL
- 2. Holen Sie sich ein Beispielvideo .MOV Dateien
- 3. Holen Sie sich Fotoreferenz
- 4. Holen Sie sich ein StackPane Breite
- 5. Holen Sie sich ein Array von mehrdimensionalen durch einen Wert
- 6. Holen Sie sich ein Bild von Google Maps
- 7. XNA: Holen Sie sich ein Array/eine Liste von Ressourcen?
- 8. Holen Sie sich ein Genre von youtube ID
- 9. Holen Sie sich ein Pixel-Array von Golang Bild.Image
- 10. Holen Sie sich den Prozessnamen von pid
- 11. Holen Sie sich Python-Klasse von Element
- 12. Holen Sie sich Videotitel von ytdl-core
- 13. Holen Sie sich Eigentum von Maven Dependency
- 14. Holen Sie sich Herzfrequenz von Microsoft Band
- 15. WPF: Holen Sie sich Bild von Touch
- 16. Holen Sie sich das Grafikkartenmodell?
- 17. Holen Sie sich Twitter-Karte von API
- 18. Holen Sie sich den Rückgabewert von JOptionPane
- 19. Holen Sie sich das AspNetUser von HttpContext.Current.User
- 20. Holen Sie sich Spring-Modell von überall
- 21. Holen Sie sich Inhalt von der Webseite
- 22. Holen Sie sich Filialen von Bitbucket Repository
- 23. Holen Sie sich die Konsolenprotokoll von chrome
- 24. Holen Sie sich UPN von Get-ADGroupMember
- 25. Holen Sie sich original ArrayList von ArrayAdapter
- 26. Holen Sie sich alle Operationen von AzMan
- 27. Holen Sie sich aktuelle locale von Chrom
- 28. WPF Combo-Box + MouseLeftButtonDown
- 29. Shodan. Holen Sie sich alle offenen Ports für ein Netz
- 30. Holen Sie sich ein Dokument mit find_one (pymongo)
Wow, perfekt! Aber es sollte stattdessen {x: Type ListBoxItem} sein. – Mike
Danke! Ich habe es repariert. – decasteljau