我是 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?