참고URL
EventSetter (한번쯤 읽어보고 넘어가자~)
이벤트 setter는 라우트된 이벤트에 대한 응답으로 지정된 이벤트 처리기를 호출하며, 이러한 처리기는 Style을 참조하는 모든 요소에 적용되므로 각각의 개별 요소에 대해 인스턴스 처리기를 연결하지 않아도 됩니다.Style.Setters만이 EventSetter 개체를 지원합니다.
라우트된 이벤트에 대해서만 이벤트 setter를 선언할 수 있습니다.직접 라우팅 전략, bubbling 이벤트 또는 tunneling 이벤트를 사용하여 라우트된 이벤트에 대해 이벤트 setter를 선언할 수 있습니다.
EventSetter 클래스의 인스턴스는 대개 XAML(Extensible Application Markup Language)를 통해, 즉 XAML를 통해 정의되는 스타일 내의 개체 요소로 만들어집니다.EventSetter도 코드에서 인스턴스화할 수 있습니다.
이벤트 setter는 테마 리소스 사전에 포함된 스타일에는 사용할 수 없습니다.이는 테마 리소스 사전이 대개 런타임에 느슨한 BAML(이진 XAML) 파일인데다 처리기를 정의하는 관련 코드 숨김이 있을 수 있는 범위가 정의되어 있지 않기 때문입니다.
이벤트 setter를 통해 연결하는 처리기는 이벤트에 대한 클래스 처리기 및 인스턴스 처리기 이후에 호출됩니다.그러므로 클래스 처리기 또는 인스턴스 처리기가 해당 인수에서 이벤트를 처리한 것으로 표시하면 이벤트 setter가 구체적으로 HandledEventsToo true를 설정하지 않는 한 이벤트 setter가 선언하는 처리기는 호출되지 않습니다.
이벤트 setter는 BasedOn 스타일에서 생성될 수도 있습니다.스타일에서 생성되며 BasedOn으로 지정되는 이벤트 setter 처리기는 직접 적용되는 스타일에 대한 처리기 이후에 호출됩니다.
Style.Setters만이 EventSetter 개체를 지원합니다.트리거(TriggerBase 및 파생 클래스)는 EventSetter를 지원하지 않습니다.
UI
.xaml
비하인드 코드
void FileHyperlinkClick(object sender, RoutedEventArgs e) { //Hyperlink b = e.Source as Hyperlink; Hyperlink hy = sender as Hyperlink;
//Contract.Data.PersonnelPerformanceReviewDetail 데이터 개체 Contract.Data.PersonnelPerformanceReviewDetail ppd = this.datagrdPersonnelPerformanceReviewDetail.SelectedItem as Contract.Data.PersonnelPerformanceReviewDetail; if (ppd != null) { // 특정파일 열기 } }
'WPF' 카테고리의 다른 글
[Blend4 / DataGrid / DataTemplate / CellEditingTemplate / Edit] 데이터그리드 편집모드 사용하기 (0) | 2010.09.16 |
---|---|
StaticResource 와 DynamicResource 의 차이 (0) | 2010.09.15 |
[StringFormat] 초간단 날짜 표시방법변경 (0) | 2010.09.01 |
[NavigationService / PageFunction] 페이지 이동 (2) | 2010.08.23 |
[Canvas] 캔버스안의 컨트롤을 캔버스 가운데 띄우기 (0) | 2010.08.03 |
[WPF ReportViewer] WPF WinForm 리포트뷰 사용하기 (0) | 2010.08.02 |
[WPF Style/FindResource ] 비하인드 코드에서 스타일 먹히기 (0) | 2010.07.30 |
[WPF FileDialog] Image 저장/불러오기/바인딩하기 (0) | 2010.07.19 |
[MSDN]WPF/Silverlight데이터 바인딩 방법 항목 (0) | 2010.07.15 |
[DataGrid/Element Property Binding] 선택한 행 정보받아오기 (0) | 2010.07.09 |