public static IObservable <TProp> WhenAny <TProp>(this IObservablePropertyChanged @this, Expression <Func <TProp> > prop) { var name = Reflex.PropertyName(prop); var func = prop.CompileFast(); return(@this.PropertyChangedObservable.Where(s => s == name).Select(_ => func())); }