방법: 코드를 사용하여 이벤트 처리기 추가
업데이트: 2007년 11월
이 예제에서는 코드를 사용하여 요소에 이벤트 처리기를 추가하는 방법을 보여 줍니다.
XAML 요소에 이벤트 처리기를 추가하려면 요소를 포함하는 태그 페이지를 먼저 로드한 후 코드를 사용하여 처리기를 추가해야 합니다. 또는, XAML을 사용하여 요소를 선언하는 않고 코드만 사용하여 전체 응용 프로그램의 요소 트리를 작성하는 경우에는 특정 메서드를 호출하여 구성된 요소 트리에 이벤트 처리기를 추가할 수 있습니다.
예제
다음 예제에서는 새 Button을 원래 XAML에 정의되어 있는 기존 페이지에 추가합니다. 코드 숨김 파일은 이벤트 처리기 메서드를 구현한 후 해당 메서드를 Button에 대한 새 이벤트 처리기로 추가합니다.
C# 예제에서는 += 연산자를 사용하여 이벤트에 처리기를 할당합니다. 이 연산자는 CLR(공용 언어 런타임) 이벤트 처리 모델에서 처리기를 할당하는 데 사용되는 것과 동일한 연산자입니다. Microsoft Visual Basic에서는 이벤트 처리기를 추가하는 방법으로 이 연산자를 사용할 수 없으며 대신 다음 방법 중 하나를 사용해야 합니다.
AddHandler 메서드를 AddressOf 연산자와 함께 사용하여 이벤트 처리기 구현을 참조합니다.
이벤트 처리기 정의의 일부로 Handles 키워드를 사용합니다. 이 방법은 여기에서 보여 주지 않습니다. 대신 Visual Basic 및 WPF 이벤트 처리를 참조하십시오.
<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!!";
}
참고
처음에 구문 분석된 XAML 페이지에 이벤트 처리기를 추가하는 것이 훨씬 간단합니다. 이벤트 처리기를 추가하려는 개체 요소 내에 처리할 이벤트 이름과 일치하는 특성을 추가합니다. 그런 다음 해당 특성 값을 XAML 페이지의 코드 숨김 파일에 정의되어 있는 이벤트 처리기 메서드 이름으로 지정합니다. 자세한 내용은 XAML 개요 또는 라우트된 이벤트 개요를 참조하십시오.
전체 샘플을 보려면 이벤트 처리기 추가 샘플을 참조하십시오.