通知外部参数更改的更改

时间:2014-08-12 08:53:17

标签: c# .net inotifypropertychanged

我需要将通知更改事件附加到外部类中的封装参数。我通常会实现INotifyPropertyChanged,但我无法编辑外部类。这个问题的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

这很难做到。最好的选择似乎是派生该类,但您需要将所有属性标记为virtual。当你无法控制似乎不太可能的类时。

如果你是唯一一个调用该类的人,你也可以创建一个模仿该类行为的包装器。您可以自己创建属性并实现INotifyPropertyChanged。但是,您无法在更改为内部对象时收到通知。

如果这是你最好的选择,你也可以实现一个隐式转换运算符,这样你就可以传入你的类,就像你要包装的类一样。

答案 1 :(得分:0)

蛮力方法可以是使用计时器,每隔(比方说)1秒钟一直查看该属性的值,并在属性值与上一次读取不同时通知您。定时器使用自己的轻量级线程,因此这不应该对资源造成很大负担。看看你所处的困境,这似乎是唯一可行的选择。