¿Cómo puedo obtener una instancia de objeto de () => foo.Title expression

Tengo una clase simple con una propiedad

class Foo 
{ 
    string Title { get; set; } 
}

Estoy tratando de simplificar el enlace de datos llamando a una función como

BindToText(titleTextBox, ()=>foo.Title );

que se declara como

void BindToText<T>(Control control, Expression<Func<T>> property)
{
    var mex = property.Body as MemberExpression;
    string name = mex.Member.Name;

    control.DataBindings.Add("Text", ??? , name);
}

so que pongo en??? para la instancia de miFoo clase. ¿Cómo obtengo una referencia a la llamadafoo instancia de la expresión lambda?

editar La instancia debería estar allí en alguna parte porque puedo llamar aproperty.Compile() y cree un delegado que use lafoo instancia dentro de miBindToText función. Entonces mi pregunta es si esto se puede hacer sin agregar una referencia a la instancia en los parámetros de la función. Llamo a Navaja de Occum para obtener la solución más simple.

editar 2: Lo que muchos no han notado es lacierr que existe al acceder a la instancia defoo dentro de mi función, si compilo el lambda. ¿Cómo es que el compilador sabe dónde encontrar la instancia y yo no? Insisto en que tiene que haber una respuesta,si tener que pasar un argumento extra.

Solució

Gracias a VirtualBlackFox la solución es tal:

void BindText<T>(TextBoxBase text, Expression<Func<T>> property)
{
    var mex = property.Body as MemberExpression;
    string name = mex.Member.Name;
    var fex = mex.Expression as MemberExpression;
    var cex = fex.Expression as ConstantExpression;            
    var fld = fex.Member as FieldInfo;
    var x = fld.GetValue(cex.Value);
    text.DataBindings.Add("Text", x, name);            
}

que me permite simplemente escribirBindText(titleText, () => foo.Title);.

Respuestas a la pregunta(4)

Su respuesta a la pregunta