WIP: validate virtualized list selection state - #1
aarondglover wants to merge 26 commits into
Conversation
Bring the current CodeBeamOrg/CodeBeam.MudBlazor.Extensions dev changes into PR1 without rewriting the validated fix history.
|
Follow-up note for upstream PR preparation:
Benchmark-series note: focused benchmark evidence should remain authoritative as upstream dev -> focused-fix candidate. For any later architectural PR, its authoritative comparison should independently be upstream dev -> architectural PR HEAD. Intermediate graph points can be shown as explanatory evidence. Absolute timing numbers on shared runners are illustrative; structural counts, allocations and scaling shape are stronger evidence. |
Future architecture note — review before any PR3-style workThis is intentionally not PR1 scope. It records findings from the virtualization investigation so they are not lost before any later Select/List redesign. Current boundary
Historical Autocomplete findingThe The first [CascadingParameter] protected MudSelect<T> MudSelect { get; set; }
[CascadingParameter] protected MudAutocomplete<T> MudAutocomplete { get; set; }and explicitly contained: else if (MudAutocomplete != null)
{
// Uncomment on Autocomplete Phase.
// Currently autocomplete doesn't have "SelectedValues".
//SelectedValues = MudAutocomplete.SelectedValues;
}Six days later, upstream PR CodeBeamOrg#102 / commit So the best-supported interpretation is:
There is currently no evidence of a completed Before any future PR3 pushRevisit this note first and answer:
Do not infer an Autocomplete performance defect from the historical hooks alone; probe/benchmark that path separately if later architecture work touches it. |
|
Superseded by the cleaned upstream production submission: CodeBeamOrg#648. This fork PR remains as historical investigation/context only. |
Purpose
Fork-only validation PR for the correctness-first MudSelectExtended virtualization fix. This is the slice intended to become upstream PR 1 after cleanup/rebase.
Problem
Upstream PR CodeBeamOrg#583 fixed off-screen initialized selection by allowing the hidden/shadow list to materialize the full
ItemCollection. That restored selection presentation but defeats virtualization for large collections and is consistent with upstream issue CodeBeamOrg#608 (high managed-memory use).Approach
For virtualized selects:
ItemCollectionas the authoritative full value set;SelectedValuesas the authoritative selection;MudListExtendedcurrently ignores later parameter sets;Non-virtualized behavior remains unchanged.
Validation
Current head:
c05db2b1c96eac96405e0551905e5ee795ec1720GitHub Actions
.NETworkflow: passing.Related upstream context
ItemCollectionchanges are ignored while the dropdown is open CodeBeamOrg/CodeBeam.MudBlazor.Extensions#645 — confirms hostedMudListExtended.SetParametersAsyncdrops later parameter updates. Maintainer feedback there is cautious about changing central-commander/select-list communication before a larger remake, so that broader lifecycle work is intentionally not bundled here.Follow-up slices
Keep this PR draft/fork-only until the upstream-ready branch is rebased/cleaned and the final diff is reviewed.