@if (focus) {
@foreach (var tup in Filter()) {
@tup.Item1 (@tup.Item2)
}
}
@code { private bool focus = false; [Parameter] public IEnumerable<(string, string)> AcceptedValues { get; set; } = []; [Parameter] public string Value { get; set; } = ""; private async Task Prechange(ChangeEventArgs e) { Value = (string)e.Value!; StateHasChanged(); await Change.InvokeAsync(e); } [Parameter] public EventCallback Change { get; set; } private async Task Select(string s) { focus = false; Value = s; await Prechange(new() { Value = s }); StateHasChanged(); } private IEnumerable<(string, string)> Filter() { return AcceptedValues.Where(v => v.Item1.StartsWith(Value, StringComparison.OrdinalIgnoreCase) || v.Item2.StartsWith(Value, StringComparison.OrdinalIgnoreCase)); } }