2011-05-10 2 views
1

나는 이벤트, PropertyChangedEventHandler을하고 난 이런 식으로 인상 :PropertyChangedEventHandler 사용 질문

PropertyChanged(this, new PropertyChangedEventArgs("LogFile")); 
PropertyChanged(this, new PropertyChangedEventArgs("Nodes")); 

나는 또한 첨부 :

PropertyChanged += UpdateCamxWindowEvent; 

가 어떻게 UpdateCamxWindowEvent을 실행할 수있는 이벤트가 발생할 경우에만 "LogFile"?

코드에서 무엇을 변경해야합니까?

답변

3

다른 이벤트를 만든 경우를 제외하고 특정 매개 변수에 대해서만 특정 메서드를 실행할 수있는 방법이 없습니다. 매개 변수가 LogFile 일 때만 실제로 수행 할 수 있도록 UpdateCamxWindowEvent을 변경해야합니다.

당신이 할 수 없거나 논리적으로 응용 프로그램에서 이해가되지 않는 경우, 당신은 단지 인수를 테스트 처리기를 추가 할 수 있으며이 일치하는 경우, 메소드 호출

PropertyChanged += (s, e) => { if (e.PropertyName == "LogFile") UpdateCamxWindowEvent(s,e); }; 

주 이벤트에서이 익명 메소드를 구독 취소 할 수 없다는 것을 의미합니다. 그렇게해야하는 경우 같은 기능을 가진 정상적인 방법을 사용하십시오.

+0

코드에서 언급 한 처리기를 추가 할 수 있습니까? –

+0

@ Akram Shahda 대신 PropertyChanged + = UpdateCamxWindowEvent; –

0

이벤트를 항상 실행해야하는 경우 이벤트 처리기 메서드에서 이벤트 처리기의 인수 값을 확인하여 호출 할 코드 저장소를 결정할 수 있습니다.