Skip to content

Commit c029c48

Browse files
committed
feat: 增加节点回调方法
可设置展开复选等功能
1 parent ecea282 commit c029c48

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/BootstrapBlazor/Extensions/ExpandableNodeExtensions.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -152,13 +152,16 @@ public static void SetParentExpand<TNode, TItem>(this TNode node, bool expand) w
152152
/// <param name="parent">父级节点</param>
153153
/// <param name="predicate">查找子节点 Lambda 表达式</param>
154154
/// <param name="valueFactory"></param>
155-
public static List<TreeViewItem<TItem>> CascadingTree<TItem>(this IEnumerable<TItem> items, TreeViewItem<TItem>? parent, Func<TItem, TreeViewItem<TItem>?, bool> predicate, Func<TItem, TreeViewItem<TItem>> valueFactory) => items
156-
.Where(i => predicate(i, parent))
157-
.Select(i =>
155+
/// <param name="treeViewItemCallback">节点是否展开回调方法 默认 null 未设置</param>
156+
public static List<TreeViewItem<TItem>> CascadingTree<TItem>(this IEnumerable<TItem> items, TreeViewItem<TItem>? parent, Func<TItem, TreeViewItem<TItem>?, bool> predicate, Func<TItem, TreeViewItem<TItem>> valueFactory, Action<TreeViewItem<TItem>>? treeViewItemCallback = null) => [.. items.Where(i => predicate(i, parent)).Select(i =>
157+
{
158+
var item = valueFactory(i);
159+
item.Items = items.CascadingTree(item, predicate, valueFactory, treeViewItemCallback);
160+
item.Parent = parent;
161+
if (treeViewItemCallback != null)
158162
{
159-
var item = valueFactory(i);
160-
item.Items = items.CascadingTree(item, predicate, valueFactory);
161-
item.Parent = parent;
162-
return item;
163-
}).ToList();
163+
treeViewItemCallback(item);
164+
}
165+
return item;
166+
})];
164167
}

0 commit comments

Comments
 (0)