Benutzer mit den meisten Antworten
MVVM - Command in Codebehind an ViewModel senden

Frage
-
Hallo zusammen,
ich habe ein kleines Problem. Ich möchte das Auslösen eines Events (hier MediaElement.MediaEnded) per Command an das ViewModel senden.
Auf der VM-Seite habe ein RelayCommand definiert, dass sich auch über einen Button ansprechen lässt.
<Button Margin="2" Width="100" Height="100" Command="{Binding HiButtonCommand}" CommandParameter="Hey" Content="{Binding ButtonContent}" />
Dieses Command möchte ich nun mit dem o.g. Event verknüpfen. Ich würde es gerne im Code-Behind machen.
Gruß Michael,..,
- Bearbeitet mmuehr Dienstag, 1. Mai 2018 16:51
Antworten
-
Hi Michael,
das MediaEnded-Ereignis muss direkt vom Steuerelement abonniert werden. Dazu kann man eine attached behavior nutzen oder einfacher die Behavior-Klasse. Die Idee dahinter ist, beim Instanziieren des MediaElements wird im ViewModel dieser Vorgang "gefangen" und damit kennt das ViewModel den Verweis auf das MediaElement. Da kann man dann die Ereignisroutine anhängen.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks
- Als Antwort markiert mmuehr Dienstag, 1. Mai 2018 19:12
- Bearbeitet Peter Fleischer Mittwoch, 9. Mai 2018 12:30
Alle Antworten
-
Hi Michael,
das MediaEnded-Ereignis muss direkt vom Steuerelement abonniert werden. Dazu kann man eine attached behavior nutzen oder einfacher die Behavior-Klasse. Die Idee dahinter ist, beim Instanziieren des MediaElements wird im ViewModel dieser Vorgang "gefangen" und damit kennt das ViewModel den Verweis auf das MediaElement. Da kann man dann die Ereignisroutine anhängen.
--
Viele Grüsse
Peter Fleischer (ehem. MVP)
Meine Homepage mit Tipps und Tricks
- Als Antwort markiert mmuehr Dienstag, 1. Mai 2018 19:12
- Bearbeitet Peter Fleischer Mittwoch, 9. Mai 2018 12:30
-
Vielen Dank für die schnelle Antwort
daraufhin habe ich einen guten Artikel bei CodeProject gefunden.
https://www.codeproject.com/Articles/363568/Command-binding-with-Events-a-way-from-simple-to-a
Michael,..,