public Expression <BindingDelegate> CompileToDelegate( CastedExpressionBindingProperty expression, DataContextStack dataContext) { var expr = BindingCompiler.ReplaceParameters(expression.Expression, dataContext); expr = new ExpressionNullPropagationVisitor(e => true).Visit(expr); expr = ExpressionUtils.ConvertToObject(expr); return(Expression.Lambda <BindingDelegate>(expr, BindingCompiler.ViewModelsParameter, BindingCompiler.CurrentControlParameter)); }
public static Expression PropagateNulls(Expression expr, Func <Expression, bool> canBeNull) { var v = new ExpressionNullPropagationVisitor(canBeNull); return(v.Visit(expr)); }