MudDataGrid: Fix select-all checkbox never reaching checked state with disabled rows

Merged
DA
3mo ago
+111-17

Fixes #13224.

On a grid where any row is disabled through DisabledFunc, the SelectColumn header checkbox can never show as checked. Selecting all still selects every enabled row, but the header stays indeterminate, so there is no visual signal that select-all completed and no obvious way to read the state.

HeaderContext.IsAllSelected compared Selection.Count against the grid's full row count, while SetSelectAllAsync deliberately excludes disabled rows from what it selects. With one disabled row out of four, Selection.Count is permanently 3 against 4, so the comparison can only ever yield false or null. FooterContext carried a byte-identical copy.

This extracts the set select-all actually selects into GetSelectableItems() and has both contexts compare against it, so the header cannot drift from the behaviour again. What select-all selects is unchanged and disabled rows still stay unselected. No new conditional was introduced: checking the empty case first lets the all-rows-disabled case fall out without one.