Entwickler-Ecke

WPF / Silverlight - Event durch anderes event aufrufen


DrHoas - Di 12.04.11 22:46
Titel: Event durch anderes event aufrufen
Hallo,

ich hab


C#-Quelltext
1:
2:
3:
4:
private void listboxSc_Loaded(object sender, RoutedEventArgs e)
{
CodeABC
}

und jetzt gemerkt, dass ich beim Klick auf eine TextBox bis auf zwei zusätzlich Zeilen genau den CodeABC brauche. Wie kann man listboxSc_Loaded aufrufen?

Dank und Gruß

Philipp

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


hobbyC#ler - Di 12.04.11 22:50

Hallo,

ich würde einfach den Code in eine separate Methode auslagern und diese dann von den entsprechenden Stellen aufrufen.

MfG


DrHoas - Mi 13.04.11 09:16

ja, das ist mir gestern in der Situation in der auch der Fluxkompensator erdacht wurde, auch noch eingefallen :-)

Gruß

Philipp


3marci - Sa 16.04.11 12:38

EInfach nur Aufrufen?

C#-Quelltext
1:
listboxSc_Loaded(nullnull);                    


jaenicke - Sa 16.04.11 12:57

Klar geht das, ist aber nicht sinnvoll. Die richtige Lösung wurde ja bereits genannt.


c#surfer - Sa 16.04.11 21:59

Warum ist der Aufruf

C#-Quelltext
1:
listboxSc_Loaded(nullnull);                    

nicht sinnvoll?


jaenicke - Sa 16.04.11 22:27

Weil es Blödsinn ist, einen Ereignishandler anders aufzurufen als durch das Auslösen des Events. Das macht den Quelltext nur unnötig schwer nachzuvollziehen.

Wenn man selbst eigene Methoden braucht, die man aufrufen möchte, dann kann man die auch als solche selbst erstellen und ordentlich benennen. Dann sieht man sofort, für was die Methode da ist (vorausgesetzt man bezeichnet die auch ordentlich). Und man sieht auch was an der Stelle passiert, wo diese aufgerufen wird.

Wenn man sieht, dass Loaded einer Komponente aufgerufen wird, wird man wohl kaum wirklich erkennen was da passieren wird. Jedenfalls schlechter als mit einer ordentlich bezeichneten eigenen Methode.


Th69 - So 17.04.11 12:09

Und gerade der Aufruf mit den null-Parametern ist überhaupt nicht sinnvoll, falls man nämlich in der Event-Methode auf die 'sender' bzw. 'e'-Variable zugreift -> NullReferenceException!