public object ConvertValue(object value) { object convertedValue = value; var memberType = TargetProperty.GetMemberType(); if (Binding.Converter != null) { // try { object parameter = Element; if (Binding.ConverterParameter != null) { parameter = Binding.ConverterParameter; } convertedValue = Binding.Converter.Convert(value, memberType, parameter, CultureInfo.CurrentUICulture); } // catch (InvalidCastException) {} // catch (NotSupportedException) {} // catch (NotImplementedException) {} } var typeCode = Convert.GetTypeCode(convertedValue); if (typeCode != TypeCode.Object && typeCode != TypeCode.Empty) { convertedValue = Convert.ChangeType(convertedValue, memberType); } return(convertedValue); }