private static object DoConversion(object value, Type toType, CultureInfo culture)
{
if ((value is IConvertible) || (value == null))
{
try
{
return(System.Convert.ChangeType(value, toType, culture));
}
catch (Exception)
{
return(DependencyProperty.UnsetValue);
}
}
else
{
System.ComponentModel.TypeConverter typeConverter = TypeDescriptor.GetConverter(value);
if (typeConverter.CanConvertTo(toType))
{
return(typeConverter.ConvertTo(null, culture, value, toType));
}
}
return(DependencyProperty.UnsetValue);
}