public object Convert(object value, Type targetType, IValueConverter valueConverter)
{
object result = value;
if (valueConverter != null)
{
var parameter = GetConverterParameter();
result = valueConverter.Convert(value, targetType, parameter, CultureInfo.CurrentUICulture);
}
if (targetType != null)
{
var typeCode = System.Convert.GetTypeCode(value);
if (typeCode != TypeCode.Object && typeCode != TypeCode.Empty)
{
try
{
result = System.Convert.ChangeType(result, targetType);
}
catch (InvalidCastException)
{
}
}
}
return result;
}