@@ -53,7 +53,7 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
5353 {
5454 await RefreshDataAsync ( firstRender ) ;
5555 isFirstRenderComplete = true ;
56- }
56+ }
5757
5858 await base . OnAfterRenderAsync ( firstRender ) ;
5959 }
@@ -383,6 +383,7 @@ private async Task OnHeaderCheckboxChanged(ChangeEventArgs args)
383383 allItemsSelected = bool . TryParse ( args ? . Value ? . ToString ( ) , out var checkboxState ) && checkboxState ;
384384 selectedItems = allItemsSelected ? new HashSet < TItem > ( items ! ) : new HashSet < TItem > ( ) ;
385385 SelectedItemsCount = selectedItems . Count ;
386+ SetSelected = selectedItems ;
386387 await CheckOrUnCheckAll ( ) ;
387388
388389 if ( SelectedItemsChanged . HasDelegate )
@@ -456,8 +457,8 @@ private void PrepareCheckboxIds()
456457 private async Task RefreshSelectionAsync ( )
457458 {
458459 selectedItems = ( items ? . Count ?? 0 ) == 0
459- ? new HashSet < TItem > ( )
460- : selectedItems ? . Intersect ( items ! ) . ToHashSet ( ) ?? new HashSet < TItem > ( ) ;
460+ ? new HashSet < TItem > ( )
461+ : selectedItems ? . Intersect ( items ! ) . ToHashSet ( ) ?? new HashSet < TItem > ( ) ;
461462
462463 SelectedItemsCount = selectedItems . Count ;
463464 allItemsSelected = SelectedItemsCount > 0 && items ! . Count == SelectedItemsCount ;
@@ -584,6 +585,19 @@ private void SetFilters(IEnumerable<FilterItem> filterItems)
584585 [ Parameter ]
585586 public bool AllowRowClick { get ; set ; }
586587
588+ /// <summary>
589+ /// Gets or sets the grid set selection.
590+ /// </summary>
591+ /// <remarks>
592+ /// Default value is false.
593+ /// </remarks>
594+ [ Parameter ]
595+ public HashSet < TItem > SetSelected
596+ {
597+ get => selectedItems ;
598+ set => selectedItems = value ;
599+ }
600+
587601 /// <summary>
588602 /// Gets or sets the grid selection.
589603 /// </summary>
0 commit comments