Skip to content

Commit 04b8949

Browse files
authored
refactor(Select): refactor the editable mode logic (#4606)
1 parent a802e1a commit 04b8949

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/BootstrapBlazor/Components/Select/Select.razor.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -513,17 +513,21 @@ private async Task OnChange(ChangeEventArgs args)
513513
{
514514
if (args.Value is string v)
515515
{
516-
// 判断是否为泛型 SelectedItem
517-
var isGeneric = Items.GetType().GetGenericArguments().Length > 0;
518-
519516
// Items 中没有时插入一个 SelectedItem
520517
var item = Items.FirstOrDefault(i => i.Text == v);
521518

522-
TValue? val = default;
523519
if (item == null)
524520
{
521+
// 判断是否为泛型 SelectedItem
522+
var itemType = Items.GetType();
523+
var isGeneric = false;
524+
if (itemType.IsGenericType)
525+
{
526+
isGeneric = itemType.GetGenericArguments()[0].IsGenericType;
527+
}
525528
if (isGeneric)
526529
{
530+
TValue? val = default;
527531
if (TextConvertToValueCallback != null)
528532
{
529533
val = await TextConvertToValueCallback(v);
@@ -538,6 +542,7 @@ private async Task OnChange(ChangeEventArgs args)
538542
var items = new List<SelectedItem>() { item };
539543
items.AddRange(Items);
540544
Items = items;
545+
CurrentValueAsString = v;
541546
}
542547

543548
if (item is SelectedItem<TValue> value)

0 commit comments

Comments
 (0)