我希望能够将控件的DataContext作为IObservable获取。我已经尝试了以下方法:
Observable.FromEvent<DependencyPropertyChangedEventHandler,
DependencyPropertyChangedEventArgs>
(a => this.DataContextChanged += a, a => this.DataContextChanged -= a)
.Subscribe(e => MessageBox.Show(e.NewValue.ToString()));
编译没有问题,但在调用“Subscribe”时会抛出异常:“绑定到目标方法的错误”。我猜这是因为DependencyPropertyChangedEventArgs没有继承自事件参数,但我不确定。如果您有任何关于正确方法的建议,将不胜感激。
a => new DependencyPropertyChangedEventHandler(new Action<object, DependencyPropertyChangedEventArgs>((s, e) => a(e)))
简化为a => (s, e) => a(s, e)
。 - Enigmativity