From 1a92d1c1036ef61b231c755af30a314a02b0dae2 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 09:38:59 +0800 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20OnDoubleClickI?= =?UTF-8?q?tem=20=E5=9B=9E=E8=B0=83=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/ListGroup/ListGroup.razor | 3 ++- .../Components/ListGroup/ListGroup.razor.cs | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor index 63403c586ad..af0b28b3b8d 100644 --- a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor +++ b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor @@ -14,7 +14,8 @@
@foreach (var item in Items) { -
+
@if (ItemTemplate != null) { @ItemTemplate(item) diff --git a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs index cd6fa177987..4c84853f0ef 100644 --- a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs +++ b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs @@ -44,6 +44,12 @@ public partial class ListGroup [Parameter] public Func? OnClickItem { get; set; } + /// + /// 获得/设置 双击 List 项目回调方法 + /// + [Parameter] + public Func? OnDoubleClickItem { get; set; } + /// /// 获得/设置 获得条目显示文本内容回调方法 /// @@ -55,7 +61,7 @@ public partial class ListGroup .Build(); private string? GetItemClassString(TItem item) => CssBuilder.Default("list-group-item") - .AddClass("active", Value != null && Value.Equals(item)) + .AddClass("active", Value.Equals(item)) .Build(); /// @@ -78,4 +84,13 @@ private async Task OnClick(TItem item) } CurrentValue = item; } + + private async Task OnDoubleClick(TItem item) + { + if (OnDoubleClickItem != null) + { + await OnDoubleClickItem(item); + } + CurrentValue = item; + } } From f292855a1587f0ab6033996140af710b472d0b1d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 09:39:08 +0800 Subject: [PATCH 2/7] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Samples/ListGroups.razor.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/BootstrapBlazor.Server/Components/Samples/ListGroups.razor.cs b/src/BootstrapBlazor.Server/Components/Samples/ListGroups.razor.cs index 1afe39e8d31..013a95042ef 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/ListGroups.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/ListGroups.razor.cs @@ -87,6 +87,14 @@ private AttributeItem[] GetAttributes() => DefaultValue = " — " }, new() + { + Name = "OnDoubleClickItem", + Description = Localizer["AttrOnDoubleClickItem"], + Type = "Func", + ValueList = " — ", + DefaultValue = " — " + }, + new() { Name = "GetItemDisplayText", Description = Localizer["GetItemDisplayText"], From 39deec9fd4347b190af533bef9cbd10850249e70 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 09:39:16 +0800 Subject: [PATCH 3/7] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/en-US.json | 1 + src/BootstrapBlazor.Server/Locales/zh-CN.json | 1 + 2 files changed, 2 insertions(+) diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index b1d18017aa1..e8bed3547f1 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -6488,6 +6488,7 @@ "AttrHeaderText": "the title of Header", "AttrItemTemplate": "the template of Item", "AttrOnClickItem": "the callback on click item", + "AttrOnDoubleClickItem": " the callback on double click item", "GetItemDisplayText": "the callback on get item display text" }, "BootstrapBlazor.Server.Components.Samples.Marquees": { diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index f132c447d8e..784e59ddc5d 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -6488,6 +6488,7 @@ "AttrHeaderText": "标题栏文字", "AttrItemTemplate": "选项模板", "AttrOnClickItem": "点击候选项回调方法", + "AttrOnDoubleClickItem": " 双击候选项回调方法", "GetItemDisplayText": "获得显示项显示内容回调方法" }, "BootstrapBlazor.Server.Components.Samples.Marquees": { From 51da0519a88fe530f0bf2df7c093a323659dfa63 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 09:56:31 +0800 Subject: [PATCH 4/7] =?UTF-8?q?revert:=20=E6=92=A4=E9=94=80=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs index 4c84853f0ef..9c48aeab12c 100644 --- a/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs +++ b/src/BootstrapBlazor/Components/ListGroup/ListGroup.razor.cs @@ -61,7 +61,7 @@ public partial class ListGroup .Build(); private string? GetItemClassString(TItem item) => CssBuilder.Default("list-group-item") - .AddClass("active", Value.Equals(item)) + .AddClass("active", Value != null && Value.Equals(item)) .Build(); /// From 27e417a808c64e8c7214e45649a8a945df912a2b Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 09:56:37 +0800 Subject: [PATCH 5/7] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/ListGroupTest.cs | 28 ++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/test/UnitTest/Components/ListGroupTest.cs b/test/UnitTest/Components/ListGroupTest.cs index 560a6c5df6e..39520ca8674 100644 --- a/test/UnitTest/Components/ListGroupTest.cs +++ b/test/UnitTest/Components/ListGroupTest.cs @@ -27,7 +27,7 @@ public void Items_Ok() } [Fact] - public void ClickItem_Ok() + public async Task ClickItem_Ok() { var clicked = false; var cut = Context.RenderComponent>(pb => @@ -44,8 +44,30 @@ public void ClickItem_Ok() }); }); var item = cut.Find(".list-group-item"); - item.Click(); - cut.WaitForState(() => clicked); + await cut.InvokeAsync(() => item.Click()); + Assert.True(clicked); + } + + [Fact] + public async Task DoubleClickItem_Ok() + { + var clicked = false; + var cut = Context.RenderComponent>(pb => + { + pb.Add(a => a.Items, + [ + new() { Name = "Test 1" }, + new() { Name = "Test 1" } + ]); + pb.Add(a => a.OnDoubleClickItem, foo => + { + clicked = true; + return Task.CompletedTask; + }); + }); + var item = cut.Find(".list-group-item"); + await cut.InvokeAsync(() => item.DoubleClick()); + Assert.True(clicked); } [Fact] From 8732efc83835a065b50ef68320c15e965516750d Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 10:02:55 +0800 Subject: [PATCH 6/7] =?UTF-8?q?doc:=20=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/zh-CN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 784e59ddc5d..fc88abf2c6b 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -6488,7 +6488,7 @@ "AttrHeaderText": "标题栏文字", "AttrItemTemplate": "选项模板", "AttrOnClickItem": "点击候选项回调方法", - "AttrOnDoubleClickItem": " 双击候选项回调方法", + "AttrOnDoubleClickItem": "双击候选项回调方法", "GetItemDisplayText": "获得显示项显示内容回调方法" }, "BootstrapBlazor.Server.Components.Samples.Marquees": { From 3a17e692693a063b38d4ca165595656e59271ec9 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 23 Sep 2025 10:03:39 +0800 Subject: [PATCH 7/7] =?UTF-8?q?doc:=20=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/BootstrapBlazor.Server/Locales/en-US.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index e8bed3547f1..70667ec4952 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -6488,7 +6488,7 @@ "AttrHeaderText": "the title of Header", "AttrItemTemplate": "the template of Item", "AttrOnClickItem": "the callback on click item", - "AttrOnDoubleClickItem": " the callback on double click item", + "AttrOnDoubleClickItem": "the callback on double click item", "GetItemDisplayText": "the callback on get item display text" }, "BootstrapBlazor.Server.Components.Samples.Marquees": {