@@ -48,9 +48,7 @@ public sealed class BindableProperty
4848 { typeof ( ImageSource ) , new ImageSourceConverter ( ) } ,
4949#if NET6_0_OR_GREATER
5050 { typeof ( DateTime ) , new DateTimeTypeConverter ( ) } ,
51- { typeof ( DateTime ? ) , new DateTimeTypeConverter ( ) } ,
52- { typeof ( TimeSpan ) , new TimeSpanTypeConverter ( ) } ,
53- { typeof ( TimeSpan ? ) , new TimeSpanTypeConverter ( ) }
51+ { typeof ( TimeSpan ) , new TimeSpanTypeConverter ( ) }
5452#endif
5553 } ;
5654
@@ -230,12 +228,15 @@ internal bool TryConvert(ref object value)
230228 value = Convert . ChangeType ( value , returnType ) ;
231229 return true ;
232230 }
233- if ( KnownTypeConverters . TryGetValue ( returnType , out TypeConverter typeConverterTo ) && typeConverterTo . CanConvertFrom ( valueType ) )
231+
232+ Type targetType = Nullable . GetUnderlyingType ( returnType ) ?? returnType ;
233+
234+ if ( KnownTypeConverters . TryGetValue ( targetType , out TypeConverter typeConverterTo ) && typeConverterTo . CanConvertFrom ( valueType ) )
234235 {
235236 value = typeConverterTo . ConvertFrom ( value ) ;
236237 return true ;
237238 }
238- if ( KnownTypeConverters . TryGetValue ( returnType , out typeConverterTo ) && typeConverterTo . CanConvertFrom ( typeof ( string ) ) )
239+ if ( KnownTypeConverters . TryGetValue ( targetType , out typeConverterTo ) && typeConverterTo . CanConvertFrom ( typeof ( string ) ) )
239240 {
240241 value = typeConverterTo . ConvertFromInvariantString ( value . ToString ( ) ) ;
241242 return true ;
0 commit comments