{"id":"b0f4feaa-789f-4f47-aad5-525cba4a88cc","shortId":"aySvag","kind":"skill","title":"syncfusion-maui-treeview","tagline":"Implements and customize Syncfusion .NET MAUI TreeView (SfTreeView) for displaying hierarchical data structures. Use when working with TreeView, hierarchical data display, tree structures, organizational charts, nested data, expand/collapse nodes, file explorer UI, folder structu","description":"# Implementing Syncfusion .NET MAUI TreeView\n\nThe Syncfusion .NET MAUI TreeView (SfTreeView) is a powerful data-oriented control for displaying hierarchical data structures such as organizational charts, file systems, nested connections, and multi-level data. It provides intuitive expand/collapse functionality, multiple selection modes, drag-and-drop support, and extensive customization options.\n\n## When to Use This Skill\n\nUse this skill when implementing:\n\n- **Hierarchical Data Display**: Organizational structures, file explorers, category trees, nested menus\n- **Interactive Tree Navigation**: Expandable/collapsible nodes, multi-level browsing\n- **Data Binding Scenarios**: Bound mode with ItemsSource or unbound mode with manual nodes\n- **Selection Requirements**: Single, multiple, or extended selection in tree structures\n- **Custom Tree UI**: Templated nodes, custom expanders, styled tree items\n- **Advanced Tree Features**: Drag-drop reordering, filtering, sorting, load on demand\n- **MVVM Applications**: TreeView with commands, data binding, and ViewModel patterns\n\n## Component Overview\n\n**Key Capabilities:**\n- Enhanced performance with optimized view-reusing strategy\n- Bound and unbound data modes\n- Multiple selection modes with keyboard navigation\n- Item and expander templating\n- Expand/collapse with animations\n- Drag-and-drop node reordering\n- Filtering and sorting support\n- Load on demand for large datasets\n- MVVM pattern support\n- RTL (right-to-left) support\n- Customizable appearance and styling\n\n## Documentation and Navigation Guide\n\n### Getting Started\n\n📄 **Read:** [references/getting-started.md](references/getting-started.md)\n\n**When to read:** Setting up TreeView for the first time, initial configuration, basic implementation\n\n**Covers:**\n- Installing Syncfusion.Maui.TreeView NuGet package\n- Registering Syncfusion handler in MauiProgram.cs\n- Creating a basic TreeView control\n- First working example\n- Running and testing the application\n\n---\n\n### Data Binding and Population\n\n📄 **Read:** [references/data-binding.md](references/data-binding.md)\n\n**When to read:** Populating TreeView with data, choosing between bound/unbound modes, hierarchical data structures\n\n**Covers:**\n- Bound vs unbound modes comparison\n- Creating nodes without data source (unbound mode with TreeViewNode)\n- Data binding with ItemsSource (bound mode)\n- Defining hierarchical data models\n- Using HierarchyPropertyDescriptors for complex hierarchies\n- ChildPropertyName configuration\n- Self-relational data structures\n- ObservableCollection integration\n\n---\n\n### Selection\n\n📄 **Read:** [references/selection.md](references/selection.md)\n\n**When to read:** Implementing node selection, handling selection events, customizing selection appearance\n\n**Covers:**\n- Selection modes: Single, SingleDeselect, Multiple, Extended, None\n- SelectedItem, CurrentItem, and SelectedItems properties\n- SelectionChanging and SelectionChanged events\n- SelectionBackground and SelectionForeground customization\n- Keyboard navigation (WinUI, MacCatalyst)\n- Programmatic selection\n- Selection validation and cancellation\n\n---\n\n### Node Expansion and Collapse\n\n📄 **Read:** [references/expand-collapse.md](references/expand-collapse.md)\n\n**When to read:** Configuring expand/collapse behavior, handling expansion events, initial node states\n\n**Covers:**\n- AutoExpandMode options (None, AllNodes, RootNodes, specific levels)\n- ExpandActionTarget (Expander, Node)\n- Programmatic expand/collapse methods\n- NodeExpanding and NodeCollapsing events\n- IsExpanded property for individual nodes\n- Expand/collapse animations\n- Event cancellation and validation\n\n---\n\n### Templating and Customization\n\n📄 **Read:** [references/templating.md](references/templating.md)\n\n**When to read:** Customizing node appearance, creating custom expanders, designing tree item UI\n\n**Covers:**\n- ItemTemplate for node content customization\n- ExpanderTemplate for custom expand/collapse icons\n- ItemTemplateContextType (Node vs Data binding context)\n- DataTemplate creation and binding\n- Mixing images, text, and custom controls\n- Template selectors for conditional templates\n- Advanced templating patterns\n\n---\n\n### Drag and Drop\n\n📄 **Read:** [references/drag-and-drop.md](references/drag-and-drop.md)\n\n**When to read:** Enabling node reordering, implementing drag-drop functionality, customizing drag behavior\n\n**Covers:**\n- Enabling AllowDragging property\n- DragStarting, DragOver, and Drop events\n- Reordering nodes within the tree\n- Drag restrictions and validation\n- Visual feedback during drag operations\n- Custom drag templates\n- Handling drag between different levels\n\n---\n\n### Filtering\n\n📄 **Read:** [references/filtering.md](references/filtering.md)\n\n**When to read:** Filtering tree nodes, implementing search functionality, showing/hiding nodes based on criteria\n\n**Covers:**\n- FilterLevel property (Root, All, Extended)\n- Filter predicates and expressions\n- Filtering hierarchical data\n- Clearing and updating filters\n- Dynamic filtering with ObservableCollection\n- Performance considerations\n\n---\n\n### Sorting\n\n📄 **Read:** [references/sorting.md](references/sorting.md)\n\n**When to read:** Sorting tree nodes, custom sort logic, multi-level sorting\n\n**Covers:**\n- SortComparer configuration\n- Sorting hierarchical data at each level\n- Custom IComparer implementations\n- Ascending/descending order\n- Sorting with data binding\n- Performance optimization for large trees\n\n---\n\n### Styling and Appearance\n\n📄 **Read:** [references/styling-appearance.md](references/styling-appearance.md)\n\n**When to read:** Customizing visual appearance, adjusting spacing and indentation, applying themes\n\n**Covers:**\n- Item height customization (ItemHeight property)\n- Indentation settings for nested levels\n- Liquid glass effect styling\n- RTL (right-to-left) support\n- Background and foreground colors\n- Border and padding customization\n- Theme integration\n\n---\n\n### MVVM Support\n\n📄 **Read:** [references/mvvm-support.md](references/mvvm-support.md)\n\n**When to read:** Implementing TreeView with MVVM pattern, using commands and data binding\n\n**Covers:**\n- ViewModel setup for TreeView\n- INotifyPropertyChanged implementation\n- Command binding for node actions\n- Data-bound ItemsSource\n- Selection binding in MVVM\n- Event-to-command patterns\n- Best practices for MVVM architecture\n\n---\n\n### Checkbox Support\n\n📄 **Read:** [references/checkbox-support.md](references/checkbox-support.md)\n\n**When to read:** Adding checkboxes to nodes, handling checked/unchecked states, recursive checkbox modes\n\n**Covers:**\n- Checkbox in bound mode with CheckedItems\n- Checkbox in unbound mode with IsChecked property\n- CheckBoxMode property (Recursive, Cascade, None)\n- Working with checked items collection\n- Programmatic checkbox state management\n- Best practices for checkbox implementation\n\n---\n\n### Load on Demand\n\n📄 **Read:** [references/load-on-demand.md](references/load-on-demand.md)\n\n**When to read:** Implementing lazy loading of child nodes, handling large datasets, API-based hierarchies\n\n**Covers:**\n- Load on Demand implementation with LoadOnDemandCommand\n- ShowExpanderAnimation for loading feedback\n- PopulateChildNodes method\n- Avoiding duplicate loading\n- API-based lazy loading patterns\n- Performance optimization with lazy loading\n\n---\n\n### Scrolling and Navigation\n\n📄 **Read:** [references/scrolling-navigation.md](references/scrolling-navigation.md)\n\n**When to read:** Programmatic scrolling, bringing items into view, keyboard navigation\n\n**Covers:**\n- BringIntoView method with all overloads\n- Scroll position options (Start, Center, End, MakeVisible)\n- Scroll animation control\n- Horizontal scrolling configuration\n- Scrollbar visibility control\n- Keyboard navigation (arrow keys, Tab)\n- Events (Loaded, ItemTapped, ItemDoubleTapped, ItemRightTapped)\n\n---\n\n### Item Height Customization\n\n📄 **Read:** [references/item-height-customization.md](references/item-height-customization.md)\n\n**When to read:** Customizing node heights, dynamic sizing, content-based measurements\n\n**Covers:**\n- Static ItemHeight property\n- QueryNodeSize event for per-item heights\n- NodeSizeMode property (Dynamic vs None)\n- GetActualNodeHeight method\n- Dynamic height calculation\n- Performance considerations\n\n---\n\n### Empty View\n\n📄 **Read:** [references/empty-view.md](references/empty-view.md)\n\n**When to read:** Displaying empty states, customizing no-data UI, template-based empty views\n\n**Covers:**\n- Display string message when empty\n- Display custom views in empty state\n- EmptyViewTemplate for templated empty views\n- Trigger conditions for empty view\n- Binding in empty view templates\n- Search/filter empty state patterns\n\n---\n\n### Advanced Features\n\n📄 **Read:** [references/advanced-features.md](references/advanced-features.md)\n\n**When to read:** Implementing load on demand, performance optimization, advanced TreeView operations\n\n**Covers:**\n- Load on demand for large datasets\n- Empty view customization (EmptyView property)\n- Scrolling configuration and optimization\n- Working with TreeViewNode programmatically\n- Checkbox support\n- Events\n\n---\n\n### Troubleshooting\n\n📄 **Read:** [references/troubleshooting.md](references/troubleshooting.md)\n\n**When to read:** Debugging issues, resolving errors, optimization problems\n\n**Covers:**\n- Common TreeView issues and solutions\n- Performance troubleshooting\n- Data binding problems\n- Selection not working\n- Template rendering issues\n- Expand/collapse problems\n- Memory leaks and optimization\n- Best practices checklist\n\n---","tags":["syncfusion","maui","treeview","components","skills","agent-skills"],"capabilities":["skill","source-syncfusion","skill-syncfusion-maui-treeview","topic-agent-skills"],"categories":["maui-ui-components-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-treeview","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add syncfusion/maui-ui-components-skills","source_repo":"https://github.com/syncfusion/maui-ui-components-skills","install_from":"skills.sh"}},"qualityScore":"0.476","qualityRationale":"deterministic score 0.48 from registry signals: · indexed on github topic:agent-skills · 53 github stars · SKILL.md body (9,544 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:11.202Z","embedding":null,"createdAt":"2026-04-18T22:15:56.651Z","updatedAt":"2026-04-22T00:56:11.202Z","lastSeenAt":"2026-04-22T00:56:11.202Z","tsv":"'action':701 'ad':728 'adjust':635 'advanc':155,488,962,976 'allnod':412 'allowdrag':513 'anim':206,432,851 'api':790,810 'api-bas':789,809 'appear':233,357,448,625,634 'appli':639 'applic':168,281 'architectur':719 'arrow':861 'ascending/descending':612 'autoexpandmod':409 'avoid':806 'background':662 'base':557,791,811,885,928 'basic':257,271 'behavior':401,510 'best':715,766,1038 'bind':123,173,283,319,471,476,617,689,698,707,953,1024 'border':666 'bound':125,189,304,322,704,741 'bound/unbound':298 'bring':831 'bringintoview':838 'brows':121 'calcul':907 'cancel':388,434 'capabl':180 'cascad':755 'categori':109 'center':847 'chart':29,65 'check':759 'checkbox':720,729,736,739,745,763,769,999 'checkboxmod':752 'checked/unchecked':733 'checkeditem':744 'checklist':1040 'child':784 'childpropertynam':333 'choos':296 'clear':573 'collaps':392 'collect':761 'color':665 'command':171,686,697,713 'common':1016 'comparison':308 'complex':331 'compon':177 'condit':486,949 'configur':256,334,399,602,855,992 'connect':69 'consider':582,909 'content':460,884 'content-bas':883 'context':472 'control':56,273,482,852,858 'cover':259,303,358,408,456,511,560,600,641,690,738,793,837,887,931,979,1015 'creat':269,309,449 'creation':474 'criteria':559 'currentitem':367 'custom':7,90,145,150,355,378,439,446,450,461,464,481,508,534,593,609,632,644,669,871,878,921,938,988 'customiz':232 'data':16,24,31,54,60,74,103,122,172,192,282,295,301,312,318,326,338,470,572,605,616,688,703,924,1023 'data-bound':702 'data-ori':53 'dataset':222,788,985 'datatempl':473 'debug':1009 'defin':324 'demand':166,219,773,796,973,982 'design':452 'differ':540 'display':14,25,58,104,918,932,937 'document':236 'drag':84,159,208,491,505,509,525,532,535,538 'drag-and-drop':83,207 'drag-drop':158,504 'dragov':516 'dragstart':515 'drop':86,160,210,493,506,518 'duplic':807 'dynam':577,881,900,905 'effect':654 'empti':910,919,929,936,941,946,951,955,959,986 'emptyview':989 'emptyviewtempl':943 'enabl':500,512 'end':848 'enhanc':181 'error':1012 'event':354,374,404,425,433,519,711,864,892,1001 'event-to-command':710 'exampl':276 'expand':151,202,417,451 'expand/collapse':32,78,204,400,420,431,465,1032 'expandable/collapsible':116 'expandactiontarget':416 'expandertempl':462 'expans':390,403 'explor':35,108 'express':569 'extend':140,364,565 'extens':89 'featur':157,963 'feedback':530,803 'file':34,66,107 'filter':162,213,542,549,566,570,576,578 'filterlevel':561 'first':253,274 'folder':37 'foreground':664 'function':79,507,554 'get':240 'getactualnodeheight':903 'glass':653 'guid':239 'handl':352,402,537,732,786 'handler':266 'height':643,870,880,897,906 'hierarch':15,23,59,102,300,325,571,604 'hierarchi':332,792 'hierarchypropertydescriptor':329 'horizont':853 'icompar':610 'icon':466 'imag':478 'implement':5,39,101,258,349,503,552,611,680,696,770,780,797,970 'indent':638,647 'individu':429 'initi':255,405 'inotifypropertychang':695 'instal':260 'integr':341,671 'interact':113 'intuit':77 'ischeck':750 'isexpand':426 'issu':1010,1018,1031 'item':154,200,454,642,760,832,869,896 'itemdoubletap':867 'itemheight':645,889 'itemrighttap':868 'itemssourc':128,321,705 'itemtap':866 'itemtempl':457 'itemtemplatecontexttyp':467 'key':179,862 'keyboard':198,379,835,859 'larg':221,621,787,984 'lazi':781,812,818 'leak':1035 'left':230,660 'level':73,120,415,541,598,608,651 'liquid':652 'load':164,217,771,782,794,802,808,813,819,865,971,980 'loadondemandcommand':799 'logic':595 'maccatalyst':382 'makevis':849 'manag':765 'manual':133 'maui':3,10,42,47 'mauiprogram.cs':268 'measur':886 'memori':1034 'menus':112 'messag':934 'method':421,805,839,904 'mix':477 'mode':82,126,131,193,196,299,307,315,323,360,737,742,748 'model':327 'multi':72,119,597 'multi-level':71,118,596 'multipl':80,138,194,363 'mvvm':167,223,672,683,709,718 'navig':115,199,238,380,822,836,860 'nest':30,68,111,650 'net':9,41,46 'no-data':922 'node':33,117,134,149,211,310,350,389,406,418,430,447,459,468,501,521,551,556,592,700,731,785,879 'nodecollaps':424 'nodeexpand':422 'nodesizemod':898 'none':365,411,756,902 'nuget':262 'observablecollect':340,580 'oper':533,978 'optim':184,619,816,975,994,1013,1037 'option':91,410,845 'order':613 'organiz':28,64,105 'orient':55 'overload':842 'overview':178 'packag':263 'pad':668 'pattern':176,224,490,684,714,814,961 'per':895 'per-item':894 'perform':182,581,618,815,908,974,1021 'popul':285,292 'populatechildnod':804 'posit':844 'power':52 'practic':716,767,1039 'predic':567 'problem':1014,1025,1033 'programmat':383,419,762,829,998 'properti':370,427,514,562,646,751,753,890,899,990 'provid':76 'querynodes':891 'read':242,247,286,291,343,348,393,398,440,445,494,499,543,548,584,589,626,631,674,679,722,727,774,779,823,828,872,877,912,917,964,969,1003,1008 'recurs':735,754 'references/advanced-features.md':965,966 'references/checkbox-support.md':723,724 'references/data-binding.md':287,288 'references/drag-and-drop.md':495,496 'references/empty-view.md':913,914 'references/expand-collapse.md':394,395 'references/filtering.md':544,545 'references/getting-started.md':243,244 'references/item-height-customization.md':873,874 'references/load-on-demand.md':775,776 'references/mvvm-support.md':675,676 'references/scrolling-navigation.md':824,825 'references/selection.md':344,345 'references/sorting.md':585,586 'references/styling-appearance.md':627,628 'references/templating.md':441,442 'references/troubleshooting.md':1004,1005 'regist':264 'relat':337 'render':1030 'reorder':161,212,502,520 'requir':136 'resolv':1011 'restrict':526 'reus':187 'right':228,658 'right-to-left':227,657 'root':563 'rootnod':413 'rtl':226,656 'run':277 'scenario':124 'scroll':820,830,843,850,854,991 'scrollbar':856 'search':553 'search/filter':958 'select':81,135,141,195,342,351,353,356,359,384,385,706,1026 'selecteditem':366,369 'selectionbackground':375 'selectionchang':371,373 'selectionforeground':377 'selector':484 'self':336 'self-rel':335 'set':248,648 'setup':692 'sftreeview':12,49 'showexpanderanim':800 'showing/hiding':555 'singl':137,361 'singledeselect':362 'size':882 'skill':96,99 'skill-syncfusion-maui-treeview' 'solut':1020 'sort':163,215,583,590,594,599,603,614 'sortcompar':601 'sourc':313 'source-syncfusion' 'space':636 'specif':414 'start':241,846 'state':407,734,764,920,942,960 'static':888 'strategi':188 'string':933 'structu':38 'structur':17,27,61,106,144,302,339 'style':152,235,623,655 'support':87,216,225,231,661,673,721,1000 'syncfus':2,8,40,45,265 'syncfusion-maui-treeview':1 'syncfusion.maui.treeview':261 'system':67 'tab':863 'templat':148,203,437,483,487,489,536,927,945,957,1029 'template-bas':926 'test':279 'text':479 'theme':640,670 'time':254 'topic-agent-skills' 'tree':26,110,114,143,146,153,156,453,524,550,591,622 'treeview':4,11,22,43,48,169,250,272,293,681,694,977,1017 'treeviewnod':317,997 'trigger':948 'troubleshoot':1002,1022 'ui':36,147,455,925 'unbound':130,191,306,314,747 'updat':575 'use':18,94,97,328,685 'valid':386,436,528 'view':186,834,911,930,939,947,952,956,987 'view-reus':185 'viewmodel':175,691 'visibl':857 'visual':529,633 'vs':305,469,901 'winui':381 'within':522 'without':311 'work':20,275,757,995,1028","prices":[{"id":"f0ead3bd-c89e-4939-a9a8-e3f749ca93f3","listingId":"b0f4feaa-789f-4f47-aad5-525cba4a88cc","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"syncfusion","category":"maui-ui-components-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:15:56.651Z"}],"sources":[{"listingId":"b0f4feaa-789f-4f47-aad5-525cba4a88cc","source":"github","sourceId":"syncfusion/maui-ui-components-skills/syncfusion-maui-treeview","sourceUrl":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-treeview","isPrimary":false,"firstSeenAt":"2026-04-18T22:15:56.651Z","lastSeenAt":"2026-04-22T00:56:11.202Z"}],"details":{"listingId":"b0f4feaa-789f-4f47-aad5-525cba4a88cc","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"syncfusion","slug":"syncfusion-maui-treeview","github":{"repo":"syncfusion/maui-ui-components-skills","stars":53,"topics":["agent-skills"],"license":null,"html_url":"https://github.com/syncfusion/maui-ui-components-skills","pushed_at":"2026-04-08T07:27:37Z","description":"Skills for Syncfusion .NET MAUI components. Enable AI-assisted development with comprehensive documentation, code examples, and best practices for 100+ UI controls including DataGrid, Charts, Scheduler, and more.","skill_md_sha":"6df5584868cfac869b0df68b6343d05686f06453","skill_md_path":"skills/syncfusion-maui-treeview/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-treeview"},"layout":"multi","source":"github","category":"maui-ui-components-skills","frontmatter":{"name":"syncfusion-maui-treeview","description":"Implements and customize Syncfusion .NET MAUI TreeView (SfTreeView) for displaying hierarchical data structures. Use when working with TreeView, hierarchical data display, tree structures, organizational charts, nested data, expand/collapse nodes, file explorer UI, folder structures, parent-child relationships, or multi-level data visualization in .NET MAUI applications."},"skills_sh_url":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-treeview"},"updatedAt":"2026-04-22T00:56:11.202Z"}}