属性更改事件处理程序使用问题
本文关键字:问题 程序 事件处理 属性 | 更新日期: 2023-09-27 17:55:49
我有一个事件,PropertyChangedEventHandler
我像这样提出它:
PropertyChanged(this, new PropertyChangedEventArgs("LogFile"));
PropertyChanged(this, new PropertyChangedEventArgs("Nodes"));
我还附在上面:
PropertyChanged += UpdateCamxWindowEvent;
如何仅在使用"LogFile"
引发事件时才执行UpdateCamxWindowEvent
?
我应该在代码中更改什么?
除非您
创建了另一个事件,否则无法仅对某些参数执行特定方法。你应该做的是更改UpdateCamxWindowEvent
,以便它实际上仅在参数LogFile
时才执行某些操作。
如果您无法做到这一点,或者它在逻辑上在您的应用程序中没有意义,您可以添加一个处理程序,该处理程序仅测试参数,如果匹配,则调用该方法:
PropertyChanged += (s, e) => { if (e.PropertyName == "LogFile") UpdateCamxWindowEvent(s,e); };
请注意,您将无法从事件中取消订阅此匿名方法。如果需要执行此操作,请使用具有相同功能的普通方法。
如果需要始终触发事件,则可以在事件处理程序方法中检查事件处理程序的参数值,以确定要调用的代码插入。