We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

How to customize TreeView ItemTemplate based on the node expanded state in Xamarin.Forms (SfTreeView)

You can customize the TreeView ItemTemplate based on the node whether the node is expanded or not in Xamarin.Forms SfTreeView by DataTemplateSelector.


Changing the node Template at runtime by using OnSelectTemplate method based on node expanded state.

public class ItemTemplateSelector : DataTemplateSelector
    public DataTemplate RootNodeTemplate { get; set; }
    public DataTemplate ChildNodeTemplate { get; set; }
    public DataTemplate CollapsedTemplate { get; set; }
    public ItemTemplateSelector()
        this.RootNodeTemplate = new DataTemplate(typeof(RootNodeTemplate));
        this.ChildNodeTemplate = new DataTemplate(typeof(ChildNodeTemplate));
        this.CollapsedTemplate = new DataTemplate(typeof(CollapsedTemplate));
    protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
        var treeviewNode = item as TreeViewNode;
        if (treeviewNode == null)
            return null;
        if (!treeviewNode.IsExpanded && treeviewNode.HasChildNodes && treeviewNode.Level == 0)
            return this.CollapsedTemplate;
        else if (treeviewNode.Level == 0)
            return this.RootNodeTemplate;
            return this.ChildNodeTemplate;



DataTemplateSelector bound to ItemTemplate property.

        <local:ItemTemplateSelector x:Key="ItemTemplateSelector" />
<StackLayout Orientation="Vertical" Padding="5">
    <syncfusion:SfTreeView x:Name="treeView" NotificationSubscriptionMode="CollectionChange,PropertyChange"  
                            ItemsSource="{Binding ImageNodeInfo}"
                            ItemTemplate="{StaticResource ItemTemplateSelector}"



View sample in GitHub

2X faster development

The ultimate Xamarin UI toolkit to boost your development speed.
You must log in to leave a comment

Please sign in to access our KB

This page will automatically be redirected to the sign-in page in 10 seconds.

Up arrow icon

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile