Exemple #1
0
        /// <summary>
        /// 从表达式中得到值
        /// </summary>
        /// <param name="expression"></param>
        /// <param name="target"></param>
        /// <param name="propertyName"></param>
        /// <returns></returns>
        private static object ProvideValue(string expression, object target, string propertyName)
        {
            var extension = MarkupExtensionFactory.Create(expression);

            if (extension == null)
            {
                return(expression);                    //不是标记,直接返回表达式作为值
            }
            var value = extension.ProvideValue(target, propertyName);
            var exp   = value as Expression;

            if (exp != null)
            {
                //如果是表达式,那么执行表达式后再获取值
                value = exp.GetValue(target, propertyName);
            }
            return(value);
        }
Exemple #2
0
 private static MarkupExtension CreateMarkupExtension(string attrValue)
 {
     return(MarkupExtensionFactory.Create(attrValue));
 }