I have something odd happening with the example you've given. You have a DynamicObject.cs class that contains a GetValue<T> method:
When I add a field to the ExpressionEditor's window I see this method get called and it parses the value found in the Dictionary without issue. This method is also called when I submit this code in your example:
var evaluatedExpression = (LambdaExpression)
Which calls this Evaluate method:
Expression Evaluate(Expression e)
(e.NodeType == ExpressionType.Constant)
LambdaExpression lambda = Expression.Lambda(e);
Delegate fn = lambda.Compile();
Problem is, when the GetValue method is called from this 2nd set of code I get an exception stating that it can't cast the given value to an integer data type. It looks tastes and feels like an integer to me.
Have you ever seen problems with a cast like this? I can send my example project if you will look at this for me. I'm using Visual Studio 2012, WPF 2012.2.912.40 on a Windows 7 machine.
Thanks for your help,