@@ -35,6 +35,8 @@ public sealed partial class TreeViews
3535
3636 private List < TreeViewItem < TreeFoo > > DraggableItems { get ; set ; } = [ ] ;
3737
38+ private List < TreeFoo > DraggableSourceItems { get ; } = GetDraggableItems ( ) ;
39+
3840 private List < TreeViewItem < TreeFoo > > DisabledItems { get ; } = GetDisabledItems ( ) ;
3941
4042 private List < TreeViewItem < TreeFoo > > ? AccordionItems { get ; } = TreeFoo . GetAccordionItems ( ) ;
@@ -43,7 +45,7 @@ public sealed partial class TreeViews
4345
4446 private List < TreeViewItem < TreeFoo > > CheckedItems { get ; set ; } = GetCheckedItems ( ) ;
4547
46- private static List < TreeViewItem < TreeFoo > > IconItems { get ; set ; } = TreeFoo . GetTreeItems ( ) ;
48+ private List < TreeViewItem < TreeFoo > > IconItems { get ; } = TreeFoo . GetTreeItems ( ) ;
4749
4850 private List < TreeViewItem < TreeFoo > > ClickExpandItems { get ; } = TreeFoo . GetTreeItems ( ) ;
4951
@@ -86,8 +88,7 @@ protected override void OnInitialized()
8688 {
8789 base . OnInitialized ( ) ;
8890
89- var items = GetDraggableItems ( ) ;
90- DraggableItems = TreeFoo . CascadingTree ( items ) ;
91+ DraggableItems = TreeFoo . CascadingTree ( DraggableSourceItems ) ;
9192 DraggableItems [ 0 ] . IsExpand = true ;
9293 if ( DraggableItems . Count > 1 )
9394 {
@@ -109,11 +110,10 @@ private Task OnDragItemEndAsync(TreeViewDragContext<TreeFoo> context)
109110 {
110111 // 本例是使用静态数据模拟数据库操作的,实战中应该是更新节点的父级 Id 可能还需要更改排序字段等信息,然后重构 TreeView 数据源即可
111112 // 根据 context 处理原始数据
112- var items = GetDraggableItems ( ) ;
113- var source = items . Find ( i => i . Id == context . Source . Value . Id ) ;
113+ var source = DraggableSourceItems . Find ( i => i . Id == context . Source . Value . Id ) ;
114114 if ( source != null )
115115 {
116- var target = items . Find ( i => i . Id == context . Target . Value . Id ) ;
116+ var target = DraggableSourceItems . Find ( i => i . Id == context . Target . Value . Id ) ;
117117 if ( target != null )
118118 {
119119 source . ParentId = context . IsChildren ? target . Id : target . ParentId ;
@@ -132,7 +132,7 @@ private Task OnDragItemEndAsync(TreeViewDragContext<TreeFoo> context)
132132 }
133133 } ;
134134 }
135- DraggableItems = TreeFoo . CascadingTree ( items , cb ) ;
135+ DraggableItems = TreeFoo . CascadingTree ( DraggableSourceItems , cb ) ;
136136 DraggableItems [ 0 ] . IsExpand = true ;
137137 if ( DraggableItems . Count > 1 )
138138 {
@@ -186,25 +186,20 @@ private Task OnTreeItemChecked(List<TreeViewItem<TreeFoo>> items)
186186 return Task . CompletedTask ;
187187 }
188188
189- private static List < TreeFoo > ? _dragItems = null ;
190- private static List < TreeFoo > GetDraggableItems ( )
191- {
192- _dragItems ??=
193- [
194- new ( ) { Text = "Item A" , Id = "1" , Icon = "fa-solid fa-font-awesome" } ,
195- new ( ) { Text = "Item D" , Id = "4" , ParentId = "1" , Icon = "fa-solid fa-font-awesome" } ,
196- new ( ) { Text = "Item E" , Id = "5" , ParentId = "1" , Icon = "fa-solid fa-font-awesome" } ,
197-
198- new ( ) { Text = "Item B" , Id = "2" , Icon = "fa-solid fa-font-awesome" } ,
199- new ( ) { Text = "Item F" , Id = "6" , ParentId = "2" , Icon = "fa-solid fa-font-awesome" } ,
200- new ( ) { Text = "Item G" , Id = "9" , ParentId = "2" , Icon = "fa-solid fa-font-awesome" } ,
201-
202- new ( ) { Text = "Item C" , Id = "3" , Icon = "fa-solid fa-font-awesome" } ,
203- new ( ) { Text = "Item H" , Id = "7" , ParentId = "3" , Icon = "fa-solid fa-font-awesome" } ,
204- new ( ) { Text = "Item I" , Id = "8" , ParentId = "3" , Icon = "fa-solid fa-font-awesome" }
205- ] ;
206- return _dragItems ;
207- }
189+ private static List < TreeFoo > GetDraggableItems ( ) =>
190+ [
191+ new ( ) { Text = "Item A" , Id = "1" , Icon = "fa-solid fa-font-awesome" } ,
192+ new ( ) { Text = "Item D" , Id = "4" , ParentId = "1" , Icon = "fa-solid fa-font-awesome" } ,
193+ new ( ) { Text = "Item E" , Id = "5" , ParentId = "1" , Icon = "fa-solid fa-font-awesome" } ,
194+
195+ new ( ) { Text = "Item B" , Id = "2" , Icon = "fa-solid fa-font-awesome" } ,
196+ new ( ) { Text = "Item F" , Id = "6" , ParentId = "2" , Icon = "fa-solid fa-font-awesome" } ,
197+ new ( ) { Text = "Item G" , Id = "9" , ParentId = "2" , Icon = "fa-solid fa-font-awesome" } ,
198+
199+ new ( ) { Text = "Item C" , Id = "3" , Icon = "fa-solid fa-font-awesome" } ,
200+ new ( ) { Text = "Item H" , Id = "7" , ParentId = "3" , Icon = "fa-solid fa-font-awesome" } ,
201+ new ( ) { Text = "Item I" , Id = "8" , ParentId = "3" , Icon = "fa-solid fa-font-awesome" }
202+ ] ;
208203
209204 private static List < TreeViewItem < TreeFoo > > GetDisabledItems ( )
210205 {
0 commit comments