Hallo,
Ich brächte mal wieder ein wenig Hilfestellung zu MVVM:
Gibt es eine Möglichkeit Routed Events in XAML zu verarbeiten bzw. auf
Ich habe eine Listbox zu einer Zeichenoberfläche umgewandelt. ListBox deswegen, damit Items von Haus aus selektierbar sind.
Jetzt komme leider ein wenig ins straucheln mit dem Bubbling-Event
Bei einem Linksklick sollen Dinge passieren wie zum Beispiel eine Linie von einem Listbox-Item zum einem anderen zu ziehen oder Listbox-Items mittels eines
Das Tunneling-Event LeftMouseDown ist auch nicht brauchbar, da hierbei erst selektiert wird und dann, soweit überhaupt noch möglich, da ja das SelectedItem verändert wird, meine Aktionen ausgeführt werden.
Aktuell habe ich es so gelöst, dass ich die
Spoiler anzeigen
Laut MVVM sollte man das nicht tun . Gibt es weitere Möglichkeiten mit der Behandlung von Routed-Events?
Viele Grüße
Ich brächte mal wieder ein wenig Hilfestellung zu MVVM:
Gibt es eine Möglichkeit Routed Events in XAML zu verarbeiten bzw. auf
handled=true
zu setzen?Ich habe eine Listbox zu einer Zeichenoberfläche umgewandelt. ListBox deswegen, damit Items von Haus aus selektierbar sind.
Jetzt komme leider ein wenig ins straucheln mit dem Bubbling-Event
PreviewLeftMouseDown
. Bei einem Linksklick sollen Dinge passieren wie zum Beispiel eine Linie von einem Listbox-Item zum einem anderen zu ziehen oder Listbox-Items mittels eines
Thumbs
zu verschieben. Preview-Linksklick ist aber ein Bubbling-Event welches den Viewtree weiter wandert und nach meinen festgelegten Aktionen dafür sorgt, dass immer das Listbox-Item unter der Maus selektiert wird, was aber nicht passieren soll. Das Tunneling-Event LeftMouseDown ist auch nicht brauchbar, da hierbei erst selektiert wird und dann, soweit überhaupt noch möglich, da ja das SelectedItem verändert wird, meine Aktionen ausgeführt werden.
Aktuell habe ich es so gelöst, dass ich die
EventArgs
an das ViewModel mitschicke und diese dann im ViewModel auf handled=true
setze mithilfe von weblogs.asp.net/alexeyzakharov…triggered-by-eventtriggerXML-Quellcode
- xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
- <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
- <InvokeDelegateCommandAction Command="{Binding PreviewLeftClick}" CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=InvokeParameter}"/>
- </i:EventTrigger>
Laut MVVM sollte man das nicht tun . Gibt es weitere Möglichkeiten mit der Behandlung von Routed-Events?
Viele Grüße