ReactiveUI的方法有
等签名public static ReactiveUI.ObservableAsPropertyHelper<TRet>
ObservableToProperty<TObj, TRet>(
this TObj This,
System.IObservable<TRet> observable,
System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property,
TRet initialValue = null,
System.Reactive.Concurrency.IScheduler scheduler = null
)
在F#中我如何构建像
这样的对象System.Linq.Expressions.Expression<System.Func<TObj, TRet>> property,
在C#中,我会做类似
的事情this.ObservableAsPropertyHelper(
observable,
me => me.MyProperty
)
修改
我试过
m.ObservableToProperty(this, value, fun me -> me.Property )
和
m.ObservableToProperty(this,
value,
new Linq.Expression.Expression(fun me -> me.Property )
但不起作用
答案 0 :(得分:4)
我不确定新的F#3查询表达式是否对您有所帮助,但旧的PowerPack(仍然效果很好!)有一个扩展方法Expr.ToLinqExpression() : Expression
,用于编译F#引用表达式(即{{1} })进入LINQ表达式。
修改强> 正如丹尼尔指出的那样,QuotationToLambdaExpression为F#3做了工作。