Bring To View Treeview Xamarin

Sample date Updated on Sep 10, 2025
treeview xamarin xamarin-forms xamarin-treeview

This example illustrates how to Bring TreeView into View

Sample

XAML

<ContentPage.Behaviors>
    <local:TreeViewBehavior/>
</ContentPage.Behaviors>

<ContentPage.BindingContext>
    <local:FileManagerViewModel x:Name="viewModel"/>
</ContentPage.BindingContext>

<StackLayout>
    <Button x:Name="bringIntoView" Text="BringIntoView" HeightRequest="50"/>
    <syncfusion:SfTreeView x:Name="treeView" ChildPropertyName="SubFiles" ItemTemplateContextType="Node" AutoExpandMode="AllNodesExpanded" ItemsSource="{Binding ImageNodeInfo}">
        <syncfusion:SfTreeView.ItemTemplate>
            <DataTemplate>
                <Grid x:Name="grid" RowSpacing="0" >
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="40" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Image Source="{Binding Content.ImageIcon}" VerticalOptions="Center" HorizontalOptions="Center" HeightRequest="35" WidthRequest="35"/>
                    <Grid Grid.Column="1" RowSpacing="1" Padding="1,0,0,0" VerticalOptions="Center">
                        <Label LineBreakMode="NoWrap" Text="{Binding Content.ItemName}" VerticalTextAlignment="Center"/>
                    </Grid>
                </Grid>
            </DataTemplate>
        </syncfusion:SfTreeView.ItemTemplate>
    </syncfusion:SfTreeView>
</StackLayout>

Behavior

public class TreeViewBehavior : Behavior<ContentPage>
{
    #region Fields

    private SfTreeView TreeView;
    private Button Button;
    #endregion

    #region Overrides
    protected override void OnAttachedTo(ContentPage bindable)
    {
        TreeView = bindable.FindByName<SfTreeView>("treeView");
        Button = bindable.FindByName<Button>("bringIntoView");
        Button.Clicked += BringIntoView_Clicked;

        base.OnAttachedTo(bindable);
    }

    protected override void OnDetachingFrom(ContentPage bindable)
    {
        Button.Clicked -= BringIntoView_Clicked;
        Button = null;
        TreeView = null;
        base.OnDetachingFrom(bindable);
    }

    #endregion

    #region CallBack
    private void BringIntoView_Clicked(object sender, EventArgs e)
    {
        var viewModel = (sender as Button).BindingContext as FileManagerViewModel;
        var count = viewModel.ImageNodeInfo.Count;
        var data = viewModel.ImageNodeInfo[count - 1];
        TreeView.BringIntoView(data);
    }
    #endregion
}

Requirements to run the demo

To run the demo, refer to System Requirements for Xamarin

Troubleshooting

Path too long exception

If you are facing path too long exception when building this example project, close Visual Studio and rename the repository to short and build the project.

Up arrow