Gewusst wie: Hinzufügen eines Ereignishandlers mithilfe von CodeHow to: Add an Event Handler Using Code

In diesem Beispiel wird gezeigt, wie einem Element mithilfe von Code ein Ereignishandler hinzugefügt wird.This example shows how to add an event handler to an element by using code.

Wenn Sie einem XAMLXAML-Element einen Ereignishandler hinzufügen möchten und die Markup Seite, die das-Element enthält, bereits geladen wurde, müssen Sie den Handler mithilfe von Code hinzufügen.If you want to add an event handler to a XAMLXAML element, and the markup page that contains the element has already been loaded, you must add the handler using code. Wenn Sie die Elementstruktur für eine Anwendung vollständig mit Code und ohne Deklaration von Elementen mit XAMLXAMLaufbauen, können Sie auch bestimmte Methoden zum Hinzufügen von Ereignis Handlern zur konstruierten Elementstruktur aufzurufen.Alternatively, if you are building up the element tree for an application entirely using code and not declaring any elements using XAMLXAML, you can call specific methods to add event handlers to the constructed element tree.

BeispielExample

Im folgenden Beispiel wird einer vorhandenen Seite, die anfänglich in XAMLXAMLdefiniert ist, ein neues Button hinzugefügt.The following example adds a new Button to an existing page that is initially defined in XAMLXAML. Eine Code Behind-Datei implementiert eine Ereignishandlermethode und fügt diese Methode dann als neuen Ereignishandler auf dem Buttonhinzu.A code-behind file implements an event handler method and then adds that method as a new event handler on the Button.

Im C# Beispiel wird der +=-Operator verwendet, um einem Ereignis einen Handler zuzuweisen.The C# example uses the += operator to assign a handler to an event. Dabei handelt es sich um denselben Operator, der verwendet wird, um einen Handler im Ereignis Behandlungsmodell Common Language Runtime (CLR) zuzuweisen.This is the same operator that is used to assign a handler in the common language runtime (CLR) event handling model. Microsoft Visual Basic unterstützt diesen Operator nicht als Mittel zum Hinzufügen von Ereignis Handlern.Microsoft Visual Basic does not support this operator as a means of adding event handlers. Stattdessen ist eine von zwei Methoden erforderlich:It instead requires one of two techniques:

  • Verwenden Sie die AddHandler-Methode sowie einen AddressOf-Operator, um auf die Ereignishandlerimplementierung zu verweisen.Use the AddHandler method, together with an AddressOf operator, to reference the event handler implementation.

  • Verwenden Sie das Handles-Schlüsselwort als Teil der Ereignishandlerdefinition.Use the Handles keyword as part of the event handler definition. Diese Technik wird hier nicht angezeigt. siehe Visual Basic und WPF-Ereignis Behandlung.This technique is not shown here; see Visual Basic and WPF Event Handling.

<TextBlock Name="text1">Start by clicking the button below</TextBlock>
<Button Name="b1" Click="MakeButton">Make new button and add handler to it</Button>
public partial class RoutedEventAddRemoveHandler {
    void MakeButton(object sender, RoutedEventArgs e)
    {
        Button b2 = new Button();
        b2.Content = "New Button";
        // Associate event handler to the button. You can remove the event 
        // handler using "-=" syntax rather than "+=".
        b2.Click  += new RoutedEventHandler(Onb2Click);
        root.Children.Insert(root.Children.Count, b2);
        DockPanel.SetDock(b2, Dock.Top);
        text1.Text = "Now click the second button...";
        b1.IsEnabled = false;
    }
    void Onb2Click(object sender, RoutedEventArgs e)
    {
        text1.Text = "New Button (b2) Was Clicked!!";
    }
Public Partial Class RoutedEventAddRemoveHandler
    Private Sub MakeButton(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim b2 As Button = New Button()
        b2.Content = "New Button"
        AddHandler b2.Click, AddressOf Onb2Click
        root.Children.Insert(root.Children.Count, b2)
        DockPanel.SetDock(b2, Dock.Top)
        text1.Text = "Now click the second button..."
        b1.IsEnabled = False
    End Sub
    Private Sub Onb2Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        text1.Text = "New Button (b2) Was Clicked!!"
    End Sub

Hinweis

Das Hinzufügen eines Ereignis Handlers in der anfänglich analysierten XAMLXAML Seite ist viel einfacher.Adding an event handler in the initially parsed XAMLXAML page is much simpler. Fügen Sie innerhalb des Objekt Elements, dem Sie den Ereignishandler hinzufügen möchten, ein Attribut hinzu, das dem Namen des Ereignisses entspricht, das Sie behandeln möchten.Within the object element where you want to add the event handler, add an attribute that matches the name of the event that you want to handle. Geben Sie dann den Wert dieses Attributs als Namen der Ereignishandlermethode an, die Sie in der Code-Behind-Datei der Seite "XAMLXAML" definiert haben.Then specify the value of that attribute as the name of the event handler method that you defined in the code-behind file of the XAMLXAML page. Weitere Informationen finden Sie unter Übersicht über XAML (WPF) oder Routing Ereignisse.For more information, see XAML Overview (WPF) or Routed Events Overview.

Siehe auchSee also