diff --git a/src/BootstrapBlazor/Components/Select/Select.razor.cs b/src/BootstrapBlazor/Components/Select/Select.razor.cs index 3b86c9f7cef..928ea57d2b4 100644 --- a/src/BootstrapBlazor/Components/Select/Select.razor.cs +++ b/src/BootstrapBlazor/Components/Select/Select.razor.cs @@ -513,17 +513,21 @@ private async Task OnChange(ChangeEventArgs args) { if (args.Value is string v) { - // 判断是否为泛型 SelectedItem - var isGeneric = Items.GetType().GetGenericArguments().Length > 0; - // Items 中没有时插入一个 SelectedItem var item = Items.FirstOrDefault(i => i.Text == v); - TValue? val = default; if (item == null) { + // 判断是否为泛型 SelectedItem + var itemType = Items.GetType(); + var isGeneric = false; + if (itemType.IsGenericType) + { + isGeneric = itemType.GetGenericArguments()[0].IsGenericType; + } if (isGeneric) { + TValue? val = default; if (TextConvertToValueCallback != null) { val = await TextConvertToValueCallback(v); @@ -538,6 +542,7 @@ private async Task OnChange(ChangeEventArgs args) var items = new List() { item }; items.AddRange(Items); Items = items; + CurrentValueAsString = v; } if (item is SelectedItem value)