private object PerformDataBinding(string expression, BindingContext context, bool ignoreErrors)
{
object value;
int index = expression.IndexOf('.');
if (index > 0)
{
string symbolName = expression.Substring(0, index).Trim();
value = context.ResolveSymbol(symbolName, !ignoreErrors);
if (value != null)
{
expression = expression.Substring(index + 1).Trim();
try
{
value = PerformDataBinding(value, expression, context);
}
catch
{
if (!ignoreErrors) throw;
value = null;
}
}
}
else
{
value = context.ResolveSymbol(expression, !ignoreErrors);
}
return value;
}