2017-03-31 2 views
1

Ich verstehe nicht, was Ereignisparameter in C# tun. Nehmen wir an, wir haben eine Schaltfläche mit dem Namen CoffeeButton, und wenn Sie darauf klicken, gelangen Sie auf eine andere Seite namens Coffee mit einem Frame namens myFrame. Dies ist mein Code:Was tun C# -Ereignisparameter?

private void CoffeButton_Click(object sender, RoutedEventArgs e) 
{ 
    MyFrame.Navigate(typeof(Coffee)); 
} 

Was bedeutet object sender und RoutedEventArgs e in diesem Fall tun?

Beispiele wären toll!

+0

Dasselbe, was irgendwelche Parameter in irgendeiner Methode tun, liefern Eingabe und Kontext zu der aufgerufenen Methode. In diesem Beispiel ist "Absender" ein Verweis auf die angeklickte Schaltfläche, "e" ist ein Kontext über das Klickereignis. – Igor

+0

Manchmal müssen Sie wissen, wer das Ereignis gesendet hat oder Sie möchten zum Beispiel wissen, was passiert ist, das dieses Ereignis verursacht hat, z. ObservableCollection hat CollectionChanged, das Ihnen sagt, welche Elemente zur Sammlung hinzugefügt wurden und was gelöscht wurde. – FCin

+0

Okay, aber wo heißt die Methode? –

Antwort

9

Normalerweise ist "Absender" eine Referenz auf jedes Objekt, das das Ereignis ausgelöst hat. Wenn Sie also beispielsweise mehr als eine Schaltfläche haben, die alle in dieselbe button_Click -Handlerfunktion eingebunden sind, wäre das Absenderobjekt eine Referenz auf das aktuelle Schaltflächenobjekt.

Das EventArgs-Objekt, das normalerweise als zweiter Parameter übergeben wird, wird je nach Kontext für verschiedene Dinge verwendet. Im Allgemeinen wird es verwendet, um Ihnen zusätzliche Informationen zu dem Ereignis, das passiert ist, zu übermitteln. In diesem Fall bietet das RouteEventArgs-Objekt beispielsweise eine RoutedEvent-Eigenschaft, die Sie bei Bedarf anzeigen können.