gpt4 book ai didi

c# - Observable.FromEvent 可以与 DataContextChanged 一起使用吗

转载 作者:行者123 更新时间:2023-11-30 14:38:48 24 4
gpt4 key购买 nike

我想获取控件的 DataContext 作为 IObservable。我试过这个:

Observable.FromEvent<DependencyPropertyChangedEventHandler,
DependencyPropertyChangedEventArgs>
(a => this.DataContextChanged += a, a => this.DataContextChanged -= a)
.Subscribe(e => MessageBox.Show(e.NewValue.ToString()));

编译正常,但在调用 Subscribe 时抛出异常:错误绑定(bind)到目标方法。

我猜这是因为 DependencyPropertyChangedEventArgs 没有继承自事件参数,但我不确定。任何有关正确执行此操作的建议都将不胜感激。

最佳答案

FromEvent 的其他重载之一允许您从方法中自己创建委托(delegate)。允许您这样做:

Observable.FromEvent
<DependencyPropertyChangedEventHandler, DependencyPropertyChangedEventArgs>
(a => new DependencyPropertyChangedEventHandler(
new Action<object, DependencyPropertyChangedEventArgs>((s, e) => a(e))),
h => this.DataContextChanged += h, h => this.DataContextChanged -= h)
.Subscribe(e => MessageBox.Show(e.NewValue.ToString()));

这似乎有效

关于c# - Observable.FromEvent 可以与 DataContextChanged 一起使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7346688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com