private static void BindToObject(Control c, object bindableObject, Dictionary<string, List<IControlBinder>> controlBinders, object[] p)
{
if (c == null || bindableObject == null)
return;
string domainobject = bindableObject.GetType().Name;
PropertyInfo[] properties = bindableObject.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public);
Dictionary<string, Control> dictionary = c.GetControls();
foreach (PropertyInfo pi in properties)
{
foreach (string key in controlBinders.Keys)
{
string name = key + domainobject + pi.Name;
if (!dictionary.ContainsKey(name)) continue;
foreach (IControlBinder binder in controlBinders[key])
{
binder.Bind(dictionary[name], GetValue(bindableObject, pi), pi, p);
}
}
}
}