C#/C# WPF

이벤트 라우팅(Event Routing)

doublerabbits 2022. 9. 30. 21:14

Event Routing
어떤 이벤트가 컨트롤의 하위 또는 상위로 전달되는 것


1. Bubbling event
WPF 기본 이벤트
자기자신에서 이벤트가 발생하고 해당 이벤트가 부모로 전달

2. Tunneling event : 
최상위 부모 이벤트로부터 자기자신까지 이벤트가 진행
이벤트가 자식 요소에게 전달되기전 부모의 이벤트가 먼저 발생 함
접두사로 preview 를 사용

3. Direct event
하나의 엘리멘트에서만 발생


이벤트 핸들러 메소드는 RoutedEventArgs 매개변수를 가지는데 Source 속성을 통해 실제 이벤트를 발생시킨 요소에 대한 참조를 제공한다.

CommonClickHandler(object sender, RoutedEventArgs e)
object sender : 이벤트를 등록한 객체
RoutedEventArgs e : 실제 이벤트를 발생시킨 객체

특정 객체의 이벤트 핸들러에 e.Handled = true 속성을 주면 해당 객체까지만 이벤트가 발생한다.