/// <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); }
/// <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)); }