# C# eigenes Event erstellen



## Jungbluth (19. November 2019)

Hallo,
ich will einen eigenes Event erstellen und was ich bisher her gelesen habe hab ich auch halbwergs verstanden. Was ich nicht verstanden habe ist wie man nun den Auslöser definiert.

EDIT: Da ich im nachhinein gemerkt habe das ich mich falsch ausgedrückt habe formuliere ich noch mal um:
Wie prüfe ich ob die Bedingungen erfüllt wurde?


----------



## zerix (19. November 2019)

Hallo,

schön, dass du deine Frage neu formuliert hast, aber ich denke nicht, dass es das wirklich besser macht. Ich habe keine Ahnung, was du eigentlich möchtest. 

Viele Grüße
Sascha


----------



## Jungbluth (19. November 2019)

Ok, ich versuchs nochmal anders.
Hintergrund ist das ich eine eigene Touchgeste definieren will und nun herausfinden will wann diese Geste ausgelöst wird (bzw ob).


----------



## Spyke (20. November 2019)

Für WPF könntest du hier mal nach schauen wie das mit den Touch Gesten funktioniert
(selbst hab ichs noch nicht angewendet)

WPF Manipulation Basics

Exemplarische Vorgehensweise: Erstellen der ersten Fingereingabeanwendung 
 .


----------



## Jungbluth (20. November 2019)

MIt der Geste an sich an sich hab ich nicht das Problem sodern mit dem Event.


----------



## Spyke (21. November 2019)

Du willst selber ein Ereignis auslösen welches du an anderer Stelle dann abonnieren und auswerten kannst oder wie?

für standard Ereignis zum beispiel so:

```
/// <summary>
        /// Das Ereignis wird ausgelöst wenn eine Zeile selektiert/fokusiert wurde
        /// </summary>
        public event EventHandler SelectionChanged; //<---- das Ereignis

        /// <summary>
        /// Löst das Ereignis <see cref="SelectionChanged"/> aus.
        /// </summary>
        /// <param name="e"><see cref="EventArgs"/></param>
        protected virtual void OnSelectionChanged(EventArgs e) => SelectionChanged?.Invoke(this, e); //<---- feuert das Ereignis ab


.....
    
    
    //das auslösen dann
    
    void MacheWas()
{
    if(habsGemachtUndIsOk)
        OnSelectionChanged(EventArgs.Empty);
}
```


----------



## Jungbluth (21. November 2019)

ja, genau danke


----------



## Spyke (22. November 2019)

Als kleine Rand Info
SelectionChanged?
das Fragezeichen ist eine verkürzte schreibweise zur null prüfung ob jemand das ereignis abonniert hat.

man könnte es auch so schreiben:

```
protected virtual void OnSelectionChanged(EventArgs e)
{
    if(SelectionChanged!=null)
        SelectionChanged.Invoke(this, e);
}
```
oder auch so

```
protected virtual void OnSelectionChanged(EventArgs e)
{
    if(SelectionChanged!=null)
        SelectionChanged(this, e);
}
```


----------

