Я поклонник 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?