Skip to content

Commit b918dc0

Browse files
committed
feat: 实现 OnDragItemEndAsync 逻辑
1 parent f4969a8 commit b918dc0

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

src/BootstrapBlazor/Components/TreeView/TreeView.razor.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ public partial class TreeView<TItem> : IModelEqualityComparer<TItem>
278278
/// 获得/设置 拖动标签页结束回调方法
279279
/// </summary>
280280
[Parameter]
281-
public Func<TreeViewItem<TItem>, Task>? OnDragItemEndAsync { get; set; }
281+
public Func<TreeViewDragContext<TItem>, Task>? OnDragItemEndAsync { get; set; }
282282

283283
[Inject]
284284
[NotNull]
@@ -427,7 +427,15 @@ public async ValueTask TriggerKeyDown(string key)
427427
[JSInvokable]
428428
public async ValueTask TriggerDragEnd(int originIndex, int currentIndex, bool isChildren)
429429
{
430-
430+
if (OnDragItemEndAsync != null)
431+
{
432+
var context = new TreeViewDragContext<TItem>(
433+
source: Rows[originIndex],
434+
target: Rows[currentIndex],
435+
children: isChildren
436+
);
437+
await OnDragItemEndAsync(context);
438+
}
431439
}
432440

433441
/// <summary>
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the Apache 2.0 License
3+
// See the LICENSE file in the project root for more information.
4+
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
5+
6+
namespace BootstrapBlazor.Components;
7+
8+
/// <summary>
9+
/// <see cref="TreeView{TItem}"/> 组件拖动上下文类
10+
/// </summary>
11+
public class TreeViewDragContext<TItem>(TreeViewItem<TItem> source, TreeViewItem<TItem> target, bool children = false)
12+
{
13+
/// <summary>
14+
/// 获得 源节点
15+
/// </summary>
16+
public TreeViewItem<TItem> Source => source;
17+
18+
/// <summary>
19+
/// 获得 目标节点
20+
/// </summary>
21+
public TreeViewItem<TItem> Target => target;
22+
23+
/// <summary>
24+
/// 获得 是否未目标节点的子节点
25+
/// </summary>
26+
public bool IsChildren => children;
27+
}

0 commit comments

Comments
 (0)