Castle.MonoRail.Framework.Views.Aspx.DataBindingEvaluator.PerformIndexDataBinding C# (CSharp) Method

PerformIndexDataBinding() private method

private PerformIndexDataBinding ( object target, string expression, BindingContext context, int start ) : object
target object
expression string
context BindingContext
start int
return object
		private object PerformIndexDataBinding(object target, string expression,
		                                       BindingContext context, int start)
		{
			int end;

			string indexProperty = expression.Substring(0, start).Trim();

			if (!string.IsNullOrEmpty(indexProperty))
			{
				target = DataBinder.Eval(target, indexProperty);
			}

			string indexExpression = ExtractIndexerExpression(expression, start, out end);

			object indexer = Evaluate(indexExpression, context);

			indexExpression = string.Format("{0}{1}{2}", indexExprStartChars[0],
			                                indexer, indexExprEndChars[0]);

			target = DataBinder.Eval(target, indexExpression);

			expression = expression.Substring(end + 1).TrimStart('.');

			return PerformDataBinding(target, expression, context);
		}