Skip to content

Commit 61d0445

Browse files
ES-975464 - Resolve the ReadMe issue in this sample repository
1 parent 3d7fba3 commit 61d0445

File tree

1 file changed

+80
-2
lines changed

1 file changed

+80
-2
lines changed

README.md

Lines changed: 80 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,80 @@
1-
# How to drag and drop between two winui treeview?
2-
This example describes how to drag and drop between two winui treeview.
1+
# How to drag and drop between two WinUI TreeView
2+
3+
This example describes how to drag and drop between two [WinUI TreeView](https://www.syncfusion.com/winui-controls/treeview) (SfTreeView).
4+
5+
You can customize the dragging operation between two treeview by using the [SfTreeView.ItemDragStarting](https://help.syncfusion.com/cr/winui/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_ItemDragStarting), [SfTreeView.ItemDropping](https://help.syncfusion.com/cr/winui/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_ItemDropping) and [SfTreeView.ItemDropped](https://help.syncfusion.com/cr/winui/Syncfusion.UI.Xaml.TreeView.SfTreeView.html#Syncfusion_UI_Xaml_TreeView_SfTreeView_ItemDropped) events.
6+
7+
``` csharp
8+
AssociatedObject.sfTreeView1.ItemDragStarting += SfTreeView1_ItemDragStarting;
9+
AssociatedObject.sfTreeView1.ItemDropping += SfTreeView1_ItemDropping;
10+
AssociatedObject.sfTreeView2.ItemDropping += SfTreeView2_ItemDropping;
11+
AssociatedObject.sfTreeView2.ItemDropped += SfTreeView1_ItemDropped;
12+
13+
/// <summary>
14+
/// Customizing the ItemStarting event
15+
/// </summary>
16+
/// <param name="sender"></param>
17+
/// <param name="e"></param>
18+
private void SfTreeView1_ItemDragStarting(object sender, Syncfusion.UI.Xaml.TreeView.TreeViewItemDragStartingEventArgs e)
19+
{
20+
//Restrict the dragging for certain node
21+
var record = e.DraggingNodes[0].Content as Model;
22+
if (record.Header == "Feature Schedule")
23+
e.Cancel = true;
24+
}
25+
26+
/// <summary>
27+
/// Customizing the ItemDropping event
28+
/// </summary>
29+
/// <param name="sender"></param>
30+
/// <param name="e"></param>
31+
private void SfTreeView1_ItemDropping(object sender, Syncfusion.UI.Xaml.TreeView.TreeViewItemDroppingEventArgs e)
32+
{
33+
//Restrict the dropping in first treeview
34+
e.Handled = true;
35+
}
36+
37+
/// <summary>
38+
/// Customizing the ItemDropping event
39+
/// </summary>
40+
/// <param name="sender"></param>
41+
/// <param name="e"></param>
42+
private void SfTreeView2_ItemDropping(object sender, Syncfusion.UI.Xaml.TreeView.TreeViewItemDroppingEventArgs e)
43+
{
44+
//Restrict the dropping for drop position as above
45+
if (e.DropPosition == Syncfusion.UI.Xaml.TreeView.DropPosition.DropAbove)
46+
e.Handled = true;
47+
48+
//Restrict the dropping on certain nodes
49+
var record = e.TargetNode.Content as Model;
50+
if (record.Header == "My Folders")
51+
e.Handled = true;
52+
}
53+
54+
/// <summary>
55+
/// Customize the ItemDropped event
56+
/// </summary>
57+
/// <param name="sender"></param>
58+
/// <param name="e"></param>
59+
private void SfTreeView1_ItemDropped(object sender, Syncfusion.UI.Xaml.TreeView.TreeViewItemDroppedEventArgs e)
60+
{
61+
var parentNode = e.TargetNode.ParentNode;
62+
var collection = parentNode.ChildNodes;
63+
var record = e.DraggingNodes[0].Content as Model;
64+
int count = 0;
65+
foreach (var child in parentNode.ChildNodes)
66+
{
67+
var childNode = child.Content as Model;
68+
if (childNode.Header == record.Header)
69+
{
70+
count++;
71+
if (count > 1)
72+
{
73+
// Remove dropped node if the parent has the same node in it
74+
collection.Remove(child);
75+
return;
76+
}
77+
}
78+
}
79+
}
80+
```

0 commit comments

Comments
 (0)