PropertyChangedEventHandler使用问题

时间:2011-05-10 21:32:35

标签: c# .net wpf

我有一个活动PropertyChangedEventHandler,我这样举起来:

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

我也附上了它:

 PropertyChanged += UpdateCamxWindowEvent; 

只有在使用UpdateCamxWindowEvent

引发事件时,如何才能执行"LogFile"

我的代码应该改变什么?

2 个答案:

答案 0 :(得分:3)

除非您创建了另一个事件,否则无法仅对某些参数执行特定方法。你应该做的是改变UpdateCamxWindowEvent,这样它只有在参数为LogFile时才会真正做某事。

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

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

请注意,您无法从事件中取消订阅此匿名方法。如果您需要这样做,请使用具有相同功能的普通方法。

答案 1 :(得分:0)

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