Exemple #1
0
        /// <summary>
        /// 创建绑定上下文
        /// </summary>
        /// <param name="scope">要进行数据绑定的范围</param>
        /// <param name="dataModel">数据模型</param>
        /// <param name="binders">在这一次数据绑定中要用到的绑定器列表</param>
        /// <returns>绑定上下文</returns>
        public static HtmlBindingContext Create(IHtmlContainer scope, object dataModel, params object[] binders)
        {
            var elementBinders    = new List <IHtmlBinder>();
            var expressionBinders = new List <IExpressionBinder>();


            foreach (var item in binders)
            {
                {
                    var binder = item as IHtmlBinder;
                    if (binder != null)
                    {
                        elementBinders.Add(binder);
                        continue;
                    }
                }

                {
                    var binder = item as IExpressionBinder;
                    if (binder != null)
                    {
                        expressionBinders.Add(binder);
                        continue;
                    }
                }

                {
                    var list = item as IEnumerable <IHtmlBinder>;
                    if (list != null)
                    {
                        elementBinders.AddRange(list);
                        continue;
                    }
                }

                {
                    var list = item as IEnumerable <IExpressionBinder>;
                    if (list != null)
                    {
                        expressionBinders.AddRange(list);
                        continue;
                    }
                }


                throw new ArgumentException(string.Format("不支持 \"{0}\" 类型的绑定器", item.GetType().ToString()), "binders");
            }


            var context = HtmlBindingContext.Create(elementBinders.ToArray(), expressionBinders.ToArray(), scope, dataModel);

            return(context);
        }
Exemple #2
0
 /// <summary>
 /// 使用默认的绑定器设置创建 HtmlBindingContext 实例
 /// </summary>
 /// <param name="scope">要进行数据绑定的范畴</param>
 /// <param name="dataModel">数据模型</param>
 public static HtmlBindingContext Create(IHtmlContainer scope, object dataModel)
 {
     return(HtmlBindingContext.Create(ElementBinders.ToArray(), ExpressionBinders.ToArray(), scope, dataModel));
 }