2012-09-13 3 views
0

ResourceDictionary Code-Behind (예 : Styles.xaml.cs)를 사용하지 않고 ResourceDictionary (예 : Styles.xaml)의 컨트롤에서 이벤트를 처리하는 방법과 관련하여 도움을 받고 싶습니다. 주로 Styles.xaml을 바로 앞에두고 싶습니다. 스타일링.ResourceDictionary Code-Behind를 사용하지 않고 ResourceDictionary에서 이벤트를 처리하는 방법은 무엇입니까?

내 시나리오는 TemplateSelector를 사용하여 DataTemplate 스타일에 대해 ResourceDictionary를 사용하는 사용자 지정 페이지가 있습니다. 그러나, 내가 현재 가지고있는 문제는 이벤트를 처리하기위한 것입니다. 예를 들어 :

Styles.xaml이 있습니다

. 
. 
<Button Click="Button_Click"/> 
. 

그리고 나는 CustomPage.xaml.cs이 선언 : 그러나

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    // some code 
} 

, 그렇습니다 작동하지. 단추의 클릭 이벤트에 대해 특정 이벤트 처리기를 사용한다고 명시 적으로 알리는 방법이 있습니까? 또한 각 페이지마다 다른 핸들러를 사용할 수 있습니까?

CustomPage2.xaml.cs는 :

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    // some different code from CustomPage.xaml.cs 
} 

감사합니다!

+0

출력 창에 오류가 있습니까? –

+0

아니요. 실제로, 나는 단지 간단한 코드 스 니펫이므로 올바른 구문을 찾고 있지 않습니다. 현재 구현 방법에 대한 방법을 찾고있는 중입니다. 왜냐하면 현재 가지고있는 것은 방법이 아니며 작동하지 않기 때문입니다. – bloodfire1004

답변

2

대답은 간단합니다. 이러한 방식으로 이벤트를 처리하지 마십시오. 대신 바인딩을 사용하십시오 (특히 데이터 템플릿을 사용하는 경우). 예를 들어, Button을 위해 :

<Button Command="{Binding MyCommand}"> 

MyCommand는 데이터 컨텍스트에서 ICommand -implemented 인스턴스입니다.

WPF의 데이터 바인딩에 익숙하지 않은 경우 here에서 읽기 시작하십시오.