Skip to content

Commit 8ed9891

Browse files
authored
ReadMe file updated
1 parent 972e8bb commit 8ed9891

File tree

1 file changed

+76
-2
lines changed

1 file changed

+76
-2
lines changed

README.md

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,76 @@
1-
# navigation-on-selection-treeview-xamarin
2-
How to do navigation on selection in Xamarin.Forms TreeView (SfTreeView)
1+
# How to do navigation on selection in Xamarin.Forms TreeView (SfTreeView)
2+
3+
You can navigate to another page by selecting the [TreeViewNode](https://help.syncfusion.com/cr/cref_files/xamarin/Syncfusion.SfTreeView.XForms~Syncfusion.TreeView.Engine.TreeViewNode.html) in Xamarin.Forms [SfTreeView](https://help.syncfusion.com/xamarin/treeview/overview) by binding [SelectedItem](https://help.syncfusion.com/cr/xamarin/Syncfusion.SfTreeView.XForms~Syncfusion.XForms.TreeView.SfTreeView~SelectedItem.html) property from **ViewModel**.
4+
5+
**XAML**
6+
7+
Binding ViewModel **TreeViewSelectedItem** to **SfTreeView.SelectedItem**.
8+
9+
``` xml
10+
ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
11+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
12+
xmlns:local="clr-namespace:TreeViewXamarin"
13+
xmlns:syncfusion="clr-namespace:Syncfusion.XForms.TreeView;assembly=Syncfusion.SfTreeView.XForms"
14+
x:Class="TreeViewXamarin.MainPage">
15+
<ContentPage.BindingContext>
16+
<local:FileManagerViewModel x:Name="viewModel"/>
17+
</ContentPage.BindingContext>
18+
<ContentPage.Content>
19+
<syncfusion:SfTreeView x:Name="treeView" ChildPropertyName="SubFiles" SelectedItem="{Binding TreeViewSelectedItem, Mode=TwoWay}" ExpandActionTarget="Node" ItemTemplateContextType="Node" AutoExpandMode="None" ItemsSource="{Binding ImageNodeInfo}">
20+
<syncfusion:SfTreeView.ItemTemplate>
21+
<DataTemplate>
22+
<Grid x:Name="grid" RowSpacing="0" >
23+
<Grid.ColumnDefinitions>
24+
<ColumnDefinition Width="40" />
25+
<ColumnDefinition Width="*" />
26+
</Grid.ColumnDefinitions>
27+
<Image Source="{Binding Content.ImageIcon}" VerticalOptions="Center" HorizontalOptions="Center" HeightRequest="35" WidthRequest="35"/>
28+
<Grid Grid.Column="1" RowSpacing="1" Padding="1,0,0,0" VerticalOptions="Center">
29+
<Label LineBreakMode="NoWrap" Text="{Binding Content.ItemName}" VerticalTextAlignment="Center"/>
30+
</Grid>
31+
</Grid>
32+
</DataTemplate>
33+
</syncfusion:SfTreeView.ItemTemplate>
34+
</syncfusion:SfTreeView>
35+
</ContentPage.Content>
36+
</ContentPage>
37+
```
38+
39+
**C#**
40+
41+
Navigate to another page in the ViewModel **TreeViewSelectedItem** setter using [PushAsync](https://docs.microsoft.com/en-us/dotnet/api/xamarin.forms.inavigation.pushasync) method.
42+
43+
``` c#
44+
namespace TreeViewXamarin
45+
{
46+
public class FileManagerViewModel
47+
{
48+
private FileManager treeViewSelectedItem;
49+
50+
public FileManager TreeViewSelectedItem
51+
{
52+
get { return treeViewSelectedItem; }
53+
set
54+
{
55+
if (treeViewSelectedItem != value)
56+
{
57+
treeViewSelectedItem = value;
58+
ItemSelected(treeViewSelectedItem);
59+
}
60+
}
61+
}
62+
63+
private async void ItemSelected(FileManager selectedItem)
64+
{
65+
await Task.Delay(250);
66+
var newPage = new NewPage();
67+
newPage.BindingContext = selectedItem;
68+
await App.Current.MainPage.Navigation.PushAsync(newPage);
69+
}
70+
}
71+
}
72+
```
73+
74+
**Output**
75+
76+
![NavigationOnSelection](https://github.com/SyncfusionExamples/navigation-on-selection-treeview-xamarin/blob/master/ScreenShot/NavigationOnSelection.gif)

0 commit comments

Comments
 (0)