【发布时间】:2012-12-14 08:59:34
【问题描述】:
我是 Reactive Extension 的粉丝,尤其是 ReactiveUI 我在其他解决方案的项目中有 DP,而不是我的。我想将其转换为可观察的 包含此 DP 的类是内部的,并且从 DependencyObject 派生,因此我不能使用 Class.ObservableFromDP 因为类必须从 FrameworkElement 派生
我有这个解决方案
public static IObservable<T> ToObservable<T>(this DependencyObject dependencyObject, DependencyProperty property)
{
return Observable.Create<T>(o =>
{
var des = DependencyPropertyDescriptor.FromProperty(property,
dependencyObject.
GetType());
var eh =
new EventHandler(
(s, e) => o.OnNext((T) des.GetValue(dependencyObject)));
des.AddValueChanged(dependencyObject, eh);
return () => des.RemoveValueChanged(dependencyObject, eh);
});
但目标类是内部的,我无法访问此类中的属性 DependencyProperty
如何从这个属性中获取 Observable
有什么方法吗
obj.ObservableFromDP(x=>x.ActiveEditor) 正在处理不是从 FrameworkElement 派生的 obj?
【问题讨论】:
标签: c# wpf system.reactive observable reactiveui