Como: Adicionar um manipulador de eventos usando código
This example shows how to add an event handler to an element by using code.
If you want to add an event handler to a XAML element, and the markup page that contains the element has already been loaded, you must add the handler using code. Alternatively, if you are building up the element tree for an application entirely using code and not declaring any elements using XAML, you can call specific methods to add event handlers to the constructed element tree.
Exemplo
The following example adds a new Button to an existing page that is initially defined in XAML. A code-behind file implements an event handler method and then adds that method as a new event handler on the Button.
The C# example uses the += operator to assign a handler to an event. Este é o mesmo operador usado para atribuir um manipulador no common language runtime (CLR) eventos de manipulação de modelo. Microsoft Visual Basicnão oferece suporte a este operador como um meio de adicionar manipuladores de eventos. It instead requires one of two techniques:
Use the AddHandler method, together with an AddressOf operator, to reference the event handler implementation.
Use the Handles keyword as part of the event handler definition. 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
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
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!!";
}
Observação
Adding an event handler in the initially parsed XAML page is much simpler.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.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 XAML page.For more information, see Visão geral do XAML (WPF) or Visão geral sobre eventos roteados.
Consulte também
Conceitos
Visão geral sobre eventos roteados