属性更改事件处理程序使用问题

本文关键字:问题 程序 事件处理 属性 | 更新日期: 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); };

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

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