我了解 IObservable<T>
& IObserver<T>
是观察者模式的实现,可以在与 .Net 事件类似的情况下使用。
我想知道是否与 INotifyPropertyChanged
有任何关系?
我目前使用INotifyPropertyChanged
用于 winforms 和 WPF 应用程序中的数据绑定(bind),想知道我是否能够在 UI 数据绑定(bind)场景中使用 IObservable?
干杯
AWC
最佳答案
据我所知,没有任何关系。 Observers/.NET 事件是实现 Observer/Notification 样式行为的两种方式。
Microsoft 的答案是建立在 .NET 事件模式之上,而不是弃用它以支持手动注册的 Observer 对象。
我对事件最大的不满之一是无法按需清除委托(delegate)链,这会导致很多托管内存泄漏情况。为此,微软引入了弱事件的概念,即解决 Observables/Observers 时间线不匹配的问题。
您可以阅读有关 WeakEvent 模式的更多信息 here .
Josh Smith 为 INotifyPropertyChanged here 发布了 WeakEventManager 的实现。 .这提供了一种更安全(从内存的角度来看)连接更改属性的对象及其观察者的方法。
关于wpf - IObservable<T> 和 INotifyPropertyChanged - 是否存在连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2162796/