protected virtual object GetValue (Control controlContainer, string fieldName, ref PropertyDescriptor cachedDescriptor)
{
if (DesignMode)
return GetDesignTimeValue ();
else {
object dataItem = DataBinder.GetDataItem (controlContainer);
if (dataItem == null)
throw new HttpException ("A data item was not found in the container. The container must either implement IDataItemContainer, or have a property named DataItem.");
if (fieldName == ThisExpression)
return dataItem;
else {
if (cachedDescriptor != null) return cachedDescriptor.GetValue (dataItem);
PropertyDescriptor prop = GetProperty (controlContainer, fieldName);
return prop.GetValue (dataItem);
}
}
}