我需要将通知更改事件附加到外部类中的封装参数。我通常会实现INotifyPropertyChanged
,但我无法编辑外部类。这个问题的正确方法是什么?
答案 0 :(得分:1)
这很难做到。最好的选择似乎是派生该类,但您需要将所有属性标记为virtual
。当你无法控制似乎不太可能的类时。
如果你是唯一一个调用该类的人,你也可以创建一个模仿该类行为的包装器。您可以自己创建属性并实现INotifyPropertyChanged
。但是,您无法在更改为内部对象时收到通知。
如果这是你最好的选择,你也可以实现一个隐式转换运算符,这样你就可以传入你的类,就像你要包装的类一样。
答案 1 :(得分:0)
蛮力方法可以是使用计时器,每隔(比方说)1秒钟一直查看该属性的值,并在属性值与上一次读取不同时通知您。定时器使用自己的轻量级线程,因此这不应该对资源造成很大负担。看看你所处的困境,这似乎是唯一可行的选择。