2013-03-19 2 views
2

WPF 응용 프로그램에서 작업 중이며 코드 숨김에없는 TextChanged 이벤트에 메서드를 바인딩하려고합니다. 파일. 이 방법은 파일 뒤에 코드에있을 때, 나는 이것이 사용하여 간단하게 수행 할 수 있다는 사실을 알고 :코드 숨김 파일에없는 클래스에서 TextChanged 이벤트에 대한 정적 메서드 호출

TextChanged="MyMethod" 

는 내가 뭘 찾고하는 것은 코드 숨김 파일에 (다른 클래스에서 정적 메서드를 사용하는 것입니다). 이론과 같을 것이다 뭔가 :

TextChanged="MyClass.MyOtherMethod" 

내가 클래스와 메소드를 참조하는 방법을 알아 내려고 시도했다, 그러나 그것을 알아낼 수 없었다. 리소스 라이브러리를 만들어야하는 것처럼 보이지 않습니다. 클래스를 직접 참조 할 수있는 방법이 있습니까?

+0

: 이벤트 핸들러는 다음과 같습니다 것을

textBox.TextChanged += MyClass.MyOtherMethod; 

을 부여 아무것도하지 않고 다른 형식의 메서드를 호출하는 클래스 자체의 새 메서드입니다. 비록 그것이 WPF에서 필요하다면 확실하지 않다. 그것을 개인적으로 많이 사용하지 마십시오. – Servy

+0

[WPF 4.5는 XAML의 이벤트 처리기 선언에서 MarkupExtensions를 지원합니다.] (http://dotnet.dzone.com/articles/wpf-45-%E2%80%93-part-6-markup) 문제는 Microsoft 였지만 이것들을 구현하기에는 너무 게으므로, 직접 구현해야합니다. 좋은 점은 WPF의 모든 요소가 재사용 될 수 있다는 것입니다. –

답변

0

쉽게 뒤에 코드에서 정적 이벤트 핸들러를 추가 할 수 있습니다 : 당신은 항상을 만들 수 있습니다

public class MyClass 
{ 
    public static void MyOtherMethod(object sender, TextChangedEventArgs e) 
    { 
     ... 
    } 
} 
0

이벤트 처리기를 만들고 여기에서 정적 메서드를 호출하면됩니다. 이런 식으로 뭔가 :

myText.TextChanged += myText_TextChanged; 

void myText_TextChanged(object sender, TextChangedEventArgs e) 
{ 
    MyStaticHelper.Execute(); 
} 
관련 문제