실버라이트의 이벤트 모델은 자바스크립트를 통해서 이벤트 처리를 하고 있는데, 이 방식은 플래시와 매우 흡사합니다.이벤트 디스패처(Event Dispatcher)와 이벤트 리스너(혹은 핸들러)의 개념이 있는 옵저버 패턴을따르고 있으며, 이벤트 핸들러(Event Handler)를 등록하여 이벤트가 발생했을 때 생성된 이벤트 오브젝트를 다루는 방식으로 되어있습니다. 자바스크립트의 경우 액션스크립트와 같은 addEventListener() 함수를 사용하므로 플래시 개발자도 쉽게 적응할 수 있습니다. 이벤트 이름과 지원하는 이벤트는 조금 차이가 있답니다.
ex)
오브젝트.addEventListener("이벤트이름", Sys.Silverlight.createDelegate(this, this.prevPost));
오브젝트는 XAML에서 정의한 개체를 의미합니다.
Sys.Silverlight.createDelegate는 실버라이트 내장 함수로 this 오브젝트와 특정 함수를 연결해서 delegate 함수를 만들어 줍니다. 즉, this.prevPost()를 호출해 주는 임시 함수를 만들어 주는 역할을 합니다. 왜 이렇게 하냐면, 만약 this.prevPost를 이벤트 핸들러 함수로 등록하게 되면 this 오브젝트 영역에서 함수를 실행하지 않기 때문이죠. 따라서 this 영역에서 메소드로서 온전히 실행되도록 delegate 함수를 생성하는 것이랍니다.
다음은 이벤트의 종류입니다.







