{"id":"898a8d38-0c6d-4db7-9f2b-a598035218d3","shortId":"fscNzp","kind":"skill","title":"syncfusion-maui-dataform","tagline":"Implements Syncfusion .NET MAUI DataForm (SfDataForm). Use when creating data entry forms, edit forms, login forms, registration forms, or contact forms in MAUI. Covers form creation, data validation, editor customization, layout management, data binding, grouping, localization, ","description":"# Implementing .NET MAUI DataForm (SfDataForm)\n\nThe Syncfusion .NET MAUI DataForm (SfDataForm) is a comprehensive form builder control that automatically generates data entry forms from data objects. It provides built-in editors, validation, flexible layouts, and extensive customization options for creating professional data collection and editing interfaces.\n\n## When to Use This Skill\n\nUse this skill when you need to:\n- **Create data entry forms** (login, registration, contact, employee forms, etc.)\n- **Edit data objects** with automatic form generation from model classes\n- **Validate user input** with built-in or custom validation rules\n- **Customize form editors** (text, numeric, date, dropdown, etc.)\n- **Layout forms** in linear or grid arrangements\n- **Group form fields** with collapsible sections\n- **Localize forms** for multiple languages\n- **Support RTL layouts** for right-to-left languages\n- **Implement floating label designs** for modern UIs\n- **Handle form commits** with different modes (LostFocus, PropertyChanged, Manual)\n\n**Typical scenarios:**\n- User registration and profile editing\n- Business data entry (orders, invoices, contacts)\n- Settings and configuration screens\n- Survey and questionnaire forms\n- Search and filter forms\n\n## Component Overview\n\n**Key Features:**\n- **Auto-generation:** Automatically creates form editors from data object properties\n- **10+ Built-in Editors:** Text, numeric, date, time, dropdown, checkbox, switch, masked entry, and more\n- **Validation:** Built-in support for data annotations and custom validation\n- **Flexible Layouts:** Linear or grid layouts with grouping support\n- **Customization:** Custom editors, styling, and behavior modification\n- **Localization:** Multi-language support with resource files\n- **Accessibility:** RTL support and screen reader compatibility\n\n\n## Documentation and Navigation Guide\n\n### Getting Started\n📄 **Read:** [references/getting-started.md](references/getting-started.md)\n\nLearn the fundamentals of setting up and using DataForm:\n- NuGet package installation for Visual Studio, VS Code, and Rider\n- Handler registration in MauiProgram.cs\n- Creating data objects and view models\n- Binding the DataObject property\n- First DataForm implementation\n- DataForm sizing in StackLayout containers\n- Basic configuration and setup\n\n**When to read:** Starting a new project with DataForm, or need installation guidance.\n\n---\n\n### Built-in Editors\n📄 **Read:** [references/built-in-editors.md](references/built-in-editors.md)\n\nUnderstand the 10+ built-in editor types and automatic generation:\n- Text editors (Text, Multiline, Password)\n- Numeric editor (SfNumericEntry)\n- Date and Time editors (DatePicker, TimePicker)\n- Boolean editors (CheckBox, Switch)\n- Selection editors (Picker, ComboBox, AutoComplete, RadioGroup)\n- MaskedText editor for phone numbers and credit cards\n- Editor generation rules based on data types\n- DataFormItem types and input control mapping\n- DataType attributes for editor selection\n\n**When to read:** Need to understand which editor is generated for each property type, or want to see available editor options.\n\n---\n\n### Custom Editors\n📄 **Read:** [references/custom-editors.md](references/custom-editors.md)\n\nLearn to configure and create custom editors:\n- Explicit editor configuration (switching between editor types)\n- Changing editor types for properties\n- Custom editor view implementation\n- ItemManager customization\n- InitializeDataEditor method override\n- Custom control integration\n- Editor property mapping and binding\n- Advanced editor customization scenarios\n\n**When to read:** Need to change the default editor for a property, or implement a completely custom editor control.\n\n---\n\n### Validation\n📄 **Read:** [references/validation.md](references/validation.md)\n\nImplement comprehensive data validation:\n- Built-in validation attributes (Required, StringLength, Range, EmailAddress, etc.)\n- Data annotation validation\n- Validation modes (LostFocus, PropertyChanged, Manual)\n- DataFormDateRange attribute for date validation\n- Custom validation logic implementation\n- Validation error display and styling\n- Programmatic validation with Validate() method\n- ValidationLabel customization\n- Real-time vs on-submit validation\n\n**When to read:** Need to validate form input, show error messages, or implement custom validation rules.\n\n---\n\n### Data Annotations\n📄 **Read:** [references/data-annotations.md](references/data-annotations.md)\n\nConfigure DataForm behavior declaratively with attributes:\n- Display attributes (Name, Prompt, GroupName, AutoGenerateField)\n- Order attribute for field ordering\n- Formatting attributes (DisplayFormat)\n- ReadOnly and Editable attributes\n- DataType attribute for editor type selection\n- Visibility control attributes\n- Custom attribute implementation\n- Attribute combinations and precedence rules\n\n**When to read:** Want to configure DataForm using attributes on model properties, or need to control field generation.\n\n---\n\n### Layout\n📄 **Read:** [references/layout.md](references/layout.md)\n\nOrganize form fields with flexible layout options:\n- Linear layout (one field per row, default)\n- Grid layout with ColumnCount property\n- Label positioning (Left, Top)\n- ItemsOrderInRow for custom column ordering\n- Row and column span configuration\n- Layout customization techniques\n- Responsive layout strategies\n- Per-group layout configuration\n\n**When to read:** Need to arrange form fields in multiple columns, or customize the form layout structure.\n\n---\n\n### Grouping\n📄 **Read:** [references/grouping.md](references/grouping.md)\n\nGroup related form fields together:\n- GroupName attribute for field grouping\n- Group header customization\n- Collapsible/expandable groups\n- Per-group layout (linear vs grid)\n- Group ordering and appearance\n- GenerateDataFormItem event for dynamic groups\n- Nested grouping strategies\n\n**When to read:** Need to organize form fields into logical sections or collapsible groups.\n\n---\n\n### DataForm Settings\n📄 **Read:** [references/dataform-settings.md](references/dataform-settings.md)\n\nConfigure global DataForm properties and appearance:\n- AutoGenerateItems property (auto vs manual generation)\n- Items collection for manual item creation\n- Label settings (width, position, styling)\n- Editor height and spacing configuration\n- Padding and margin properties\n- Background and visual appearance\n- ItemManager customization for global behavior\n- Theme integration\n\n**When to read:** Need to customize the overall appearance or behavior of the DataForm control.\n\n---\n\n### Editing Behavior\n📄 **Read:** [references/editing.md](references/editing.md)\n\nControl when and how data is committed:\n- Commit modes (LostFocus, PropertyChanged, Manual)\n- CommitMode property configuration\n- Programmatic commit with Commit() method\n- Read-only fields and disabled editors\n- ValueChanged event handling\n- Updating data objects programmatically\n- Two-way data binding behavior\n- Form reset and cancel operations\n\n**When to read:** Need to control when form changes are saved to the data object, or implement save/cancel logic.\n\n---\n\n### Floating Label Layout\n📄 **Read:** [references/floating-label-layout.md](references/floating-label-layout.md)\n\nImplement modern floating label designs:\n- Floating label feature overview\n- Enabling floating labels on editors\n- Label animation behavior (float on focus)\n- Float mode configuration options\n- Styling floating labels\n- Best practices for floating label UX\n- Compatibility with different editor types\n\n**When to read:** Want to implement Material Design-style floating labels for a modern look.\n\n---\n\n### Localization\n📄 **Read:** [references/localization.md](references/localization.md)\n\nSupport multiple languages in forms:\n- Localization overview and setup\n- Resource file (.resx) configuration\n- Culture-specific strings and messages\n- Localized error messages\n- Localized labels and prompts\n- Runtime language switching\n- Platform-specific localization considerations\n\n**When to read:** Need to create forms in multiple languages or support international users.\n\n---\n\n### Right-to-Left Support\n📄 **Read:** [references/right-to-left.md](references/right-to-left.md)\n\nImplement RTL layout for Arabic, Hebrew, and other RTL languages:\n- RTL support overview\n- Enabling RTL layout with FlowDirection\n- RTL behavior for editors and controls\n- RTL for labels and validation messages\n- Cultural considerations for RTL\n- Testing and debugging RTL layouts\n\n**When to read:** Supporting right-to-left languages like Arabic or Hebrew.\n\n---","tags":["syncfusion","maui","dataform","components","skills","agent-skills"],"capabilities":["skill","source-syncfusion","skill-syncfusion-maui-dataform","topic-agent-skills"],"categories":["maui-ui-components-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-dataform","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 (8,569 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:06.622Z","embedding":null,"createdAt":"2026-04-18T22:15:13.258Z","updatedAt":"2026-04-22T00:56:06.622Z","lastSeenAt":"2026-04-22T00:56:06.622Z","tsv":"'10':222,356 'access':273 'advanc':477 'anim':905 'annot':245,519,572 'appear':729,762,792,808 'arab':1008,1053 'arrang':145,688 'attribut':411,512,527,581,583,589,594,599,601,608,610,612,625,710 'auto':212,765 'auto-gener':211 'autocomplet':387 'autogeneratefield':587 'autogenerateitem':763 'automat':59,114,214,363 'avail':433 'background':789 'base':400 'basic':330 'behavior':263,578,797,810,816,859,906,1023 'best':917 'bind':38,318,476,858 'boolean':379 'builder':56 'built':70,125,224,240,348,358,509 'built-in':69,124,223,239,347,357,508 'busi':189 'cancel':863 'card':396 'chang':455,486,873 'checkbox':232,381 'class':119 'code':305 'collaps':150,750 'collapsible/expandable':717 'collect':84,770 'column':665,669,693 'columncount':656 'combin':613 'combobox':386 'commit':175,826,827,836,838 'commitmod':832 'compat':279,923 'complet':496 'compon':207 'comprehens':54,505 'configur':197,331,443,450,576,622,671,682,757,784,834,912,960 'consider':981,1035 'contact':24,106,194 'contain':329 'control':57,408,470,499,607,632,814,820,870,1027 'cover':28 'creat':13,81,100,215,312,445,987 'creation':30,774 'credit':395 'cultur':962,1034 'culture-specif':961 'custom':34,78,128,131,247,258,259,436,446,460,465,469,479,497,531,546,568,609,664,673,695,716,794,805 'data':14,31,37,61,65,83,101,111,190,219,244,313,402,506,518,571,824,851,857,878 'dataform':4,9,44,50,297,323,325,342,577,623,752,759,813 'dataformdaterang':526 'dataformitem':404 'dataobject':320 'datatyp':410,600 'date':136,229,373,529 'datepick':377 'debug':1040 'declar':579 'default':488,652 'design':169,894,936 'design-styl':935 'differ':177,925 'disabl':845 'display':537,582 'displayformat':595 'document':280 'dropdown':137,231 'dynam':733 'edit':17,86,110,188,598,815 'editor':33,72,133,217,226,260,350,360,366,371,376,380,384,390,397,413,422,434,437,447,449,453,456,461,472,478,489,498,603,780,846,903,926,1025 'emailaddress':516 'employe':107 'enabl':899,1017 'entri':15,62,102,191,235 'error':536,564,968 'etc':109,138,517 'event':731,848 'explicit':448 'extens':77 'featur':210,897 'field':148,591,633,641,649,690,707,712,745,843 'file':272,958 'filter':205 'first':322 'flexibl':74,249,643 'float':167,884,892,895,900,907,910,915,920,938 'flowdirect':1021 'focus':909 'form':16,18,20,22,25,29,55,63,103,108,115,132,140,147,153,174,202,206,216,561,640,689,697,706,744,860,872,952,988 'format':593 'fundament':291 'generat':60,116,213,364,398,424,634,768 'generatedataformitem':730 'get':284 'global':758,796 'grid':144,253,653,725 'group':39,146,256,680,700,704,713,714,718,721,726,734,736,751 'groupnam':586,709 'guid':283 'guidanc':346 'handl':173,849 'handler':308 'header':715 'hebrew':1009,1055 'height':781 'implement':5,41,166,324,463,494,504,534,567,611,881,890,933,1004 'initializedataeditor':466 'input':122,407,562 'instal':300,345 'integr':471,799 'interfac':87 'intern':994 'invoic':193 'item':769,773 'itemmanag':464,793 'itemsorderinrow':662 'key':209 'label':168,658,775,885,893,896,901,904,916,921,939,971,1030 'languag':156,165,268,950,975,991,1013,1051 'layout':35,75,139,159,250,254,635,644,647,654,672,676,681,698,722,886,1006,1019,1042 'learn':289,441 'left':164,660,999,1050 'like':1052 'linear':142,251,646,723 'local':40,152,265,944,953,967,970,980 'logic':533,747,883 'login':19,104 'look':943 'lostfocus':179,523,829 'manag':36 'manual':181,525,767,772,831 'map':409,474 'margin':787 'mask':234 'maskedtext':389 'materi':934 'maui':3,8,27,43,49 'mauiprogram.cs':311 'messag':565,966,969,1033 'method':467,544,839 'mode':178,522,828,911 'model':118,317,627 'modern':171,891,942 'modif':264 'multi':267 'multi-languag':266 'multilin':368 'multipl':155,692,949,990 'name':584 'navig':282 'need':98,344,418,484,558,630,686,741,803,868,985 'nest':735 'net':7,42,48 'new':339 'nuget':298 'number':393 'numer':135,228,370 'object':66,112,220,314,852,879 'on-submit':551 'one':648 'oper':864 'option':79,435,645,913 'order':192,588,592,666,727 'organ':639,743 'overal':807 'overrid':468 'overview':208,898,954,1016 'packag':299 'pad':785 'password':369 'per':650,679,720 'per-group':678,719 'phone':392 'picker':385 'platform':978 'platform-specif':977 'posit':659,778 'practic':918 'preced':615 'profession':82 'profil':187 'programmat':540,835,853 'project':340 'prompt':585,973 'properti':221,321,427,459,473,492,628,657,760,764,788,833 'propertychang':180,524,830 'provid':68 'questionnair':201 'radiogroup':388 'rang':515 'read':286,336,351,417,438,483,501,557,573,619,636,685,701,740,754,802,817,841,867,887,930,945,984,1001,1045 'read-on':840 'reader':278 'readon':596 'real':548 'real-tim':547 'references/built-in-editors.md':352,353 'references/custom-editors.md':439,440 'references/data-annotations.md':574,575 'references/dataform-settings.md':755,756 'references/editing.md':818,819 'references/floating-label-layout.md':888,889 'references/getting-started.md':287,288 'references/grouping.md':702,703 'references/layout.md':637,638 'references/localization.md':946,947 'references/right-to-left.md':1002,1003 'references/validation.md':502,503 'registr':21,105,185,309 'relat':705 'requir':513 'reset':861 'resourc':271,957 'respons':675 'resx':959 'rider':307 'right':162,997,1048 'right-to-left':161,996,1047 'row':651,667 'rtl':158,274,1005,1012,1014,1018,1022,1028,1037,1041 'rule':130,399,570,616 'runtim':974 'save':875 'save/cancel':882 'scenario':183,480 'screen':198,277 'search':203 'section':151,748 'see':432 'select':383,414,605 'set':195,293,753,776 'setup':333,956 'sfdataform':10,45,51 'sfnumericentri':372 'show':563 'size':326 'skill':92,95 'skill-syncfusion-maui-dataform' 'source-syncfusion' 'space':783 'span':670 'specif':963,979 'stacklayout':328 'start':285,337 'strategi':677,737 'string':964 'stringlength':514 'structur':699 'studio':303 'style':261,539,779,914,937 'submit':553 'support':157,242,257,269,275,948,993,1000,1015,1046 'survey':199 'switch':233,382,451,976 'syncfus':2,6,47 'syncfusion-maui-dataform':1 'techniqu':674 'test':1038 'text':134,227,365,367 'theme':798 'time':230,375,549 'timepick':378 'togeth':708 'top':661 'topic-agent-skills' 'two':855 'two-way':854 'type':361,403,405,428,454,457,604,927 'typic':182 'ui':172 'understand':354,420 'updat':850 'use':11,90,93,296,624 'user':121,184,995 'ux':922 'valid':32,73,120,129,238,248,500,507,511,520,521,530,532,535,541,543,554,560,569,1032 'validationlabel':545 'valuechang':847 'view':316,462 'visibl':606 'visual':302,791 'vs':304,550,724,766 'want':430,620,931 'way':856 'width':777","prices":[{"id":"6af42c08-f97e-4413-a8a7-343499dc871e","listingId":"898a8d38-0c6d-4db7-9f2b-a598035218d3","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:13.258Z"}],"sources":[{"listingId":"898a8d38-0c6d-4db7-9f2b-a598035218d3","source":"github","sourceId":"syncfusion/maui-ui-components-skills/syncfusion-maui-dataform","sourceUrl":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-dataform","isPrimary":false,"firstSeenAt":"2026-04-18T22:15:13.258Z","lastSeenAt":"2026-04-22T00:56:06.622Z"}],"details":{"listingId":"898a8d38-0c6d-4db7-9f2b-a598035218d3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"syncfusion","slug":"syncfusion-maui-dataform","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":"0ff862cf7b1531f8186b761d5fc754639aaf7b02","skill_md_path":"skills/syncfusion-maui-dataform/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/syncfusion/maui-ui-components-skills/tree/master/skills/syncfusion-maui-dataform"},"layout":"multi","source":"github","category":"maui-ui-components-skills","frontmatter":{"name":"syncfusion-maui-dataform","description":"Implements Syncfusion .NET MAUI DataForm (SfDataForm). Use when creating data entry forms, edit forms, login forms, registration forms, or contact forms in MAUI. Covers form creation, data validation, editor customization, layout management, data binding, grouping, localization, built-in editors, custom editors, and validation modes."},"skills_sh_url":"https://skills.sh/syncfusion/maui-ui-components-skills/syncfusion-maui-dataform"},"updatedAt":"2026-04-22T00:56:06.622Z"}}