@@ -429,7 +429,15 @@ protected async Task SyncMultiselectionValues(bool singleToMultiselection)
429429 }
430430 else
431431 {
432- SelectedValues = new HashSet < T > ( ) { Value } ;
432+ if ( Value is string && string . IsNullOrEmpty ( Converter . Set ( Value ) ) )
433+ {
434+ SelectedValues = new HashSet < T > ( ) ;
435+ }
436+ else
437+ {
438+ SelectedValues = new HashSet < T > ( ) { Value } ;
439+ }
440+
433441 }
434442 await SelectedValuesChanged . InvokeAsync ( _selectedValues ) ;
435443 }
@@ -650,6 +658,7 @@ protected override void OnParametersSet()
650658 _allSelected = GetAllSelectedState ( ) ;
651659 }
652660
661+ bool _firstRendered = false ;
653662 T _oldValue ;
654663 bool _oldMultiselection = false ;
655664 protected override async Task OnParametersSetAsync ( )
@@ -658,7 +667,10 @@ protected override async Task OnParametersSetAsync()
658667 UpdateIcon ( ) ;
659668 if ( MultiSelection != _oldMultiselection )
660669 {
661- await SyncMultiselectionValues ( MultiSelection ) ;
670+ if ( _firstRendered == true )
671+ {
672+ await SyncMultiselectionValues ( MultiSelection ) ;
673+ }
662674 ForceRenderItems ( ) ;
663675 if ( MultiSelection == true )
664676 {
@@ -714,6 +726,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
714726 _keyInterceptor . KeyDown += HandleKeyDown ;
715727 _keyInterceptor . KeyUp += HandleKeyUp ;
716728 await UpdateDataVisualiserTextAsync ( ) ;
729+ _firstRendered = true ;
717730 StateHasChanged ( ) ;
718731 }
719732 //Console.WriteLine("Select rendered");
@@ -1095,6 +1108,10 @@ public async Task BeginValidatePublic()
10951108 if ( Items ? . Select ( x => x . Value ) . Contains ( item . Value ) == false )
10961109 {
10971110 Items . Add ( item ) ;
1111+ if ( MultiSelection == true && SelectedValues . Contains ( item . Value ) )
1112+ {
1113+ item . Selected = true ;
1114+ }
10981115 result = true ;
10991116 }
11001117 return result ;
0 commit comments