internal static void ApplyBindingData(object target, IDictionary<string, object> bindingData)
{
var propertyHelpers = PropertyHelper.GetProperties(target).ToDictionary(p => p.Name, StringComparer.OrdinalIgnoreCase);
foreach (var pair in bindingData)
{
PropertyHelper propertyHelper;
if (propertyHelpers.TryGetValue(pair.Key, out propertyHelper) &&
propertyHelper.Property.CanWrite)
{
object value = pair.Value;
value = ConvertValueIfNecessary(value, propertyHelper.Property.PropertyType);
propertyHelper.SetValue(target, value);
}
}
}