public void SetValue(Object sourceModel, object value) { Type sourceModelType = sourceModel.GetType(); if (ConverterType != null) { object coverterObj = Activator.CreateInstance(ConverterType, null); string convertMethod = UseConvertBack ? "ConvertBack" : "Convert"; value = ConverterType.GetMethod(convertMethod).Invoke(coverterObj, new object[] { value, sourceModelType.GetProperty(PropertyName).PropertyType, null, null }); } sourceModelType.GetProperty(PropertyName)?.SetValue(sourceModel, value); }