2011-05-10 121 views
1

我有一个事件,PropertyChangedEventHandler和我提出这样的:PropertyChangedEventHandler使用问题

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

我也连接到它:

PropertyChanged += UpdateCamxWindowEvent; 

我怎么能执行UpdateCamxWindowEvent只有当事件引发与"LogFile"

我应该改变我的代码?

回答

3

除非您创建了另一个事件,否则无法为特定参数执行特定的方法。你应该做的是改变UpdateCamxWindowEvent,所以只有当参数是LogFile时,它才会有所作为。

如果你不能做到这一点,或者在逻辑上并不在你的应用程序有意义的,你可以添加,只是测试参数的处理程序,如果它匹配,调用该方法:

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

注您将无法取消订阅该活动的匿名方法。如果您需要这样做,请使用具有相同功能的普通方法。

+0

在代码中,我可以添加提到的处理程序? – 2011-05-10 21:49:46

+0

@ Akram Shahda,而不是PropertyChanged + = UpdateCamxWindowEvent; – 2011-05-10 21:53:02

0

如果您需要始终触发事件,则可以在事件处理程序方法中检查事件处理程序的参数值,以确定要调用的代码实例。