Entwickler-Ecke
WPF / Silverlight - DragEnter/DragLeave ItemsControl.Items
Aggins - Fr 04.07.08 17:40
Titel: DragEnter/DragLeave ItemsControl.Items
Hallo,
für eine Anwendung habe ich Drag/Drop implementiert. Zuerst hatte ich dafür Panels benutzt. Unter anderem wies ich dort den gedraggten Elementen DragEnter- und DragLeave-EventHandler zu, um einen bestimmten Effekt hervorzurufen, falls die Elemente übereinanderliegen würden. Da mit Panels leider kein DataBinding möglich ist, nahm ich schließlich ItemsControls zur Hand. Den Items eines ItemsControls kann ich leider kein Event zuweisen, da es sich um objects handelt. Was kann ich jetzt tun, um den von mir gewünschten Effekt zu erzielen?
Ciao
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Fr 04.07.2008 um 17:54
Kha - Sa 05.07.08 10:34
Jedes Item eines ItemControls wird zum Anzeigen in ein Container-Element gewrappt. Dieses kannst du per ItemContainerStyle stylen und ihm die Events anhängen.
Aggins - Mo 07.07.08 11:11
Cool danke! Im Microsoft-Forum konnte mir niemand diese Frage beantworten.
Aggins - Mo 07.07.08 12:30
Hallo,
gerade habe ich es mal ausprobiert. Kann man da wirklich DragEnterEvents einfügen. Ich habe es irgendwie nicht hinbekommen. Wie sähe denn der XAML-Code aus?
XML-Daten
1: 2: 3: 4: 5: 6: 7:
| <ItemsControl <ItemsControl.ItemContainerStyle> <Style> ---- ? ---- </Style> </ItemsControl.ItemContainerStyle> </ItemsControl> |
Dnake
Moderiert von
Christian S.: XML-Tags hinzugefügt
Kha - Mo 07.07.08 14:29
Style kennt zwei mögliche Child-Elemente: Setter für Properties und EventSetter für (Routed) Events.
Außerdem musst du afair noch TargetType="{x:Type FrameworkElement}" angeben.
Aggins - Mo 07.07.08 15:02
Den EventSetter hatte ich schon gesetzt, ich hatte nur TargetType="{x:Type FrameworkElement}" vergessen. Danke schön. Ich hatte das Gleiche schon mal über ein Template versucht. Das seltsame ist, dass beides Mal die DragEvents nicht angeschlagen sind. Im Gegensatz zu anderen wie zB MouseEnter. Woran könnte das denn liegen.
Aggins - Mi 09.07.08 16:16
Weiß keiner was dazu?
Kha - Mi 09.07.08 18:57
Hast du auch daran gedacht, AllowDrop zu setzen?
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| <ListBox> <ListBoxItem>Hello</ListBoxItem> <ListBoxItem>World</ListBoxItem> <ItemsControl.ItemContainerStyle> <Style TargetType="FrameworkElement"> <EventSetter Event="DragEnter" Handler="Meep" /> <Setter Property="AllowDrop" Value="True" /> </Style> </ItemsControl.ItemContainerStyle> </ListBox> |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!