Example #1
0
        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));
        }