private object PerformDataBinding(object target, string expression, BindingContext context)
{
if (string.IsNullOrEmpty(expression)) return target;
int indexStart = expression.IndexOfAny(indexExprStartChars);
if (indexStart < 0)
{
int formatIndex = expression.LastIndexOf(':');
if (formatIndex < 0)
{
return DataBinder.Eval(target, expression);
}
else
{
string format = expression.Substring(formatIndex + 1);
expression = expression.Substring(0, formatIndex);
return DataBinder.Eval(target, expression, format);
}
}
else
{
return PerformIndexDataBinding(target, expression, context, indexStart);
}
}