@@ -264,7 +264,7 @@ private SelectedItem? SelectedRow
264264 var item = Rows . Find ( i => i . Value == CurrentValueAsString )
265265 ?? Rows . Find ( i => i . Active )
266266 ?? Rows . Where ( i => ! i . IsDisabled ) . FirstOrDefault ( )
267- ?? GetVirtualizeItem ( ) ;
267+ ?? GetVirtualizeItem ( CurrentValueAsString ) ;
268268
269269 if ( item != null )
270270 {
@@ -376,22 +376,23 @@ protected override bool TryParseValueFromString(string value, [MaybeNullWhen(fal
376376
377377 private bool TryParseSelectItem ( string value , [ MaybeNullWhen ( false ) ] out TValue result , out string ? validationErrorMessage )
378378 {
379- SelectedItem = Items . FirstOrDefault ( i => i . Value == value )
380- ?? GetVirtualizeItem ( ) ;
379+ SelectedItem = Rows . FirstOrDefault ( i => i . Value == value )
380+ ?? GetVirtualizeItem ( value ) ;
381381
382382 // support SelectedItem? type
383383 result = SelectedItem != null ? ( TValue ) ( object ) SelectedItem : default ;
384384 validationErrorMessage = "" ;
385385 return SelectedItem != null ;
386386 }
387387
388- private SelectedItem ? GetVirtualizeItem ( )
388+ private SelectedItem ? GetVirtualizeItem ( string value )
389389 {
390- return OnQueryAsync == null ? null : GetSelectedItem ( ) ;
391-
392- SelectedItem ? GetSelectedItem ( ) => ValueType == typeof ( SelectedItem )
393- ? ( SelectedItem ) ( object ) Value
394- : new SelectedItem ( CurrentValueAsString , DefaultVirtualizeItemText ?? CurrentValueAsString ) ;
390+ SelectedItem ? item = null ;
391+ if ( _result . Items != null )
392+ {
393+ item = _result . Items . FirstOrDefault ( i => i . Value == value ) ;
394+ }
395+ return item ?? new SelectedItem ( value , DefaultVirtualizeItemText ?? value ) ;
395396 }
396397
397398 /// <summary>
0 commit comments