├── .gitattributes ├── .github └── workflows │ └── vale.yml ├── .gitignore ├── CODEOWNERS ├── CS ├── AddingDataEditorsAtRuntime │ ├── AddingDataEditorsAtRuntime.csproj │ ├── AddingDataEditorsAtRuntime.sln │ ├── App.xaml │ ├── App.xaml.cs │ ├── AppShell.xaml │ ├── AppShell.xaml.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MauiProgram.cs │ ├── Platforms │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources │ │ │ │ └── values │ │ │ │ └── colors.xml │ │ └── iOS │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ ├── Readme.md │ └── Resources │ │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ └── OpenSans-Semibold.ttf │ │ ├── Images │ │ └── dotnet_bot.svg │ │ ├── Raw │ │ └── AboutAssets.txt │ │ ├── Splash │ │ └── splash.svg │ │ └── Styles │ │ ├── Colors.xaml │ │ └── Styles.xaml ├── ComboBoxEditor │ ├── App.xaml │ ├── App.xaml.cs │ ├── AppShell.xaml │ ├── AppShell.xaml.cs │ ├── ComboBoxEditor.csproj │ ├── ComboBoxEditor.sln │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MauiProgram.cs │ ├── Platforms │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources │ │ │ │ └── values │ │ │ │ └── colors.xml │ │ └── iOS │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ ├── Readme.md │ └── Resources │ │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ └── OpenSans-Semibold.ttf │ │ ├── Images │ │ └── dotnet_bot.svg │ │ ├── Raw │ │ └── AboutAssets.txt │ │ ├── Splash │ │ └── splash.svg │ │ └── Styles │ │ ├── Colors.xaml │ │ └── Styles.xaml ├── CustomAppearance │ ├── App.xaml │ ├── App.xaml.cs │ ├── AppShell.xaml │ ├── AppShell.xaml.cs │ ├── CustomAppearance.csproj │ ├── CustomAppearance.sln │ ├── EmployeeInfo.cs │ ├── EmployeeRepository.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MauiProgram.cs │ ├── Platforms │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources │ │ │ │ └── values │ │ │ │ └── colors.xml │ │ └── iOS │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ └── Program.cs │ ├── Readme.md │ └── Resources │ │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ └── OpenSans-Semibold.ttf │ │ ├── Images │ │ ├── dotnet_bot.svg │ │ └── steven_buchanan.jpg │ │ ├── Raw │ │ └── AboutAssets.txt │ │ ├── Splash │ │ └── splash.svg │ │ └── Styles │ │ ├── Colors.xaml │ │ └── Styles.xaml ├── DataFormGetStarted │ ├── App.xaml │ ├── App.xaml.cs │ ├── DataFormGetStarted.csproj │ ├── DataFormGetStarted.sln │ ├── GettingStarted.txt │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MauiProgram.cs │ ├── PersonalInfo.cs │ ├── Platforms │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ ├── Program.cs │ │ │ └── Resources │ │ │ └── LaunchScreen.xib │ ├── Readme.md │ └── Resources │ │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ ├── roboto-bold.ttf │ │ ├── roboto-regular.ttf │ │ └── univia-pro-regular.ttf │ │ ├── Images │ │ ├── background.svg │ │ ├── dotnet_bot.svg │ │ ├── name.png │ │ ├── person_outline.svg │ │ └── xamarin_logo.svg │ │ ├── appicon.svg │ │ └── splashscreen.svg ├── EditFormExample │ ├── App.xaml │ ├── App.xaml.cs │ ├── AppShell.xaml │ ├── AppShell.xaml.cs │ ├── Customer.cs │ ├── EditFormExample.csproj │ ├── EditFormExample.sln │ ├── GettingStarted.txt │ ├── ImageEditView.xaml │ ├── ImageEditView.xaml.cs │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MainViewModel.cs │ ├── MauiProgram.cs │ ├── Platforms │ │ ├── Android │ │ │ ├── AndroidManifest.xml │ │ │ ├── MainActivity.cs │ │ │ ├── MainApplication.cs │ │ │ └── Resources │ │ │ │ └── values │ │ │ │ ├── colors.xml │ │ │ │ └── styles.xml │ │ └── iOS │ │ │ ├── AppDelegate.cs │ │ │ ├── Info.plist │ │ │ ├── Program.cs │ │ │ └── Resources │ │ │ └── LaunchScreen.xib │ ├── Readme.md │ └── Resources │ │ ├── AppIcon │ │ ├── appicon.svg │ │ └── appiconfg.svg │ │ ├── DevExpressMaui.de.resx │ │ ├── DevExpressMaui.es.resx │ │ ├── DevExpressMaui.fr.resx │ │ ├── DevExpressMaui.resx │ │ ├── DevExpressMaui.ru.resx │ │ ├── Fonts │ │ ├── OpenSans-Regular.ttf │ │ ├── roboto-bold.ttf │ │ ├── roboto-regular.ttf │ │ └── univia-pro-regular.ttf │ │ ├── Images │ │ ├── background.svg │ │ ├── check.svg │ │ ├── delete.svg │ │ ├── dotnet_bot.svg │ │ ├── editorscalendar.svg │ │ ├── editorscompany.svg │ │ ├── editorsemail.svg │ │ ├── editorslocation.svg │ │ ├── editorsname.svg │ │ ├── editorsphone.svg │ │ ├── gallery.svg │ │ ├── ic_arrow_back.svg │ │ ├── ic_check.svg │ │ ├── ic_frame_circle.svg │ │ ├── ic_frame_rect.svg │ │ ├── ic_mirror_h.svg │ │ ├── ic_mirror_v.svg │ │ ├── ic_rotate_left.svg │ │ ├── ic_rotate_right.svg │ │ ├── jennie_photo.png │ │ ├── pencil.svg │ │ ├── savechanges.svg │ │ └── take_photo.svg │ │ └── Splash │ │ └── splash.svg └── GettingStarted.sln ├── Images ├── data-form-combobox-android.png ├── data-form-combobox-iphone.png ├── data-form-custom-appearance-android.png ├── data-form-custom-appearance-iphone.png ├── data-form-example-iphone.png ├── data-form-example-pixel.png ├── data-form-runtime-android.png ├── data-form-runtime-iphone.png ├── data-form-with-image-edit-bs.png ├── data-form-with-image-edit-upload.png └── maui.png ├── LICENSE ├── README.md └── config.json /.gitattributes: -------------------------------------------------------------------------------- 1 | VB/* linguist-vendored 2 | scripts linguist-vendored 3 | *.css linguist-detectable=false 4 | *.aff linguist-detectable=false 5 | -------------------------------------------------------------------------------- /.github/workflows/vale.yml: -------------------------------------------------------------------------------- 1 | name: vale-validation 2 | on: 3 | pull_request: 4 | paths: 5 | - README.md 6 | - readme.md 7 | - Readme.md 8 | 9 | jobs: 10 | vale: 11 | name: runner / vale 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: clone repo 15 | uses: actions/checkout@v4 16 | - name: clone vale-styles repo 17 | uses: actions/checkout@v4 18 | with: 19 | repository: DevExpress/vale-styles 20 | path: vale-styles 21 | ssh-key: ${{ secrets.VALE_STYLES_ACCESS_KEY }} 22 | - name: copy vale rules to the root repo 23 | run: shopt -s dotglob && cp -r ./vale-styles/vale/* . 24 | - name: vale linter check 25 | uses: DevExpress/vale-action@reviewdog 26 | with: 27 | files: '["README.md", "readme.md", "Readme.md"]' 28 | fail_on_error: true 29 | filter_mode: nofilter 30 | reporter: github-check 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | ## 4 | ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 5 | 6 | # User-specific files 7 | *.suo 8 | *.user 9 | *.userosscache 10 | *.sln.docstates 11 | 12 | # User-specific files (MonoDevelop/Xamarin Studio) 13 | *.userprefs 14 | 15 | # Build results 16 | [Dd]ebug/ 17 | [Dd]ebugPublic/ 18 | [Rr]elease/ 19 | [Rr]eleases/ 20 | x64/ 21 | x86/ 22 | bld/ 23 | [Bb]in/ 24 | [Oo]bj/ 25 | [Ll]og/ 26 | 27 | # Visual Studio 2015 cache/options directory 28 | .vs/ 29 | # Uncomment if you have tasks that create the project's static files in wwwroot 30 | #wwwroot/ 31 | 32 | # MSTest test Results 33 | [Tt]est[Rr]esult*/ 34 | [Bb]uild[Ll]og.* 35 | 36 | # NUNIT 37 | *.VisualState.xml 38 | TestResult.xml 39 | 40 | # Build Results of an ATL Project 41 | [Dd]ebugPS/ 42 | [Rr]eleasePS/ 43 | dlldata.c 44 | 45 | # Benchmark Results 46 | BenchmarkDotNet.Artifacts/ 47 | 48 | # .NET Core 49 | project.lock.json 50 | project.fragment.lock.json 51 | artifacts/ 52 | **/Properties/launchSettings.json 53 | 54 | *_i.c 55 | *_p.c 56 | *_i.h 57 | *.ilk 58 | *.meta 59 | *.obj 60 | *.pch 61 | *.pdb 62 | *.pgc 63 | *.pgd 64 | *.rsp 65 | *.sbr 66 | *.tlb 67 | *.tli 68 | *.tlh 69 | *.tmp 70 | *.tmp_proj 71 | *.log 72 | *.vspscc 73 | *.vssscc 74 | .builds 75 | *.pidb 76 | *.svclog 77 | *.scc 78 | 79 | # Chutzpah Test files 80 | _Chutzpah* 81 | 82 | # Visual C++ cache files 83 | ipch/ 84 | *.aps 85 | *.ncb 86 | *.opendb 87 | *.opensdf 88 | *.sdf 89 | *.cachefile 90 | *.VC.db 91 | *.VC.VC.opendb 92 | 93 | # Visual Studio profiler 94 | *.psess 95 | *.vsp 96 | *.vspx 97 | *.sap 98 | 99 | # TFS 2012 Local Workspace 100 | $tf/ 101 | 102 | # Guidance Automation Toolkit 103 | *.gpState 104 | 105 | # ReSharper is a .NET coding add-in 106 | _ReSharper*/ 107 | *.[Rr]e[Ss]harper 108 | *.DotSettings.user 109 | 110 | # JustCode is a .NET coding add-in 111 | .JustCode 112 | 113 | # TeamCity is a build add-in 114 | _TeamCity* 115 | 116 | # DotCover is a Code Coverage Tool 117 | *.dotCover 118 | 119 | # AxoCover is a Code Coverage Tool 120 | .axoCover/* 121 | !.axoCover/settings.json 122 | 123 | # Visual Studio code coverage results 124 | *.coverage 125 | *.coveragexml 126 | 127 | # NCrunch 128 | _NCrunch_* 129 | .*crunch*.local.xml 130 | nCrunchTemp_* 131 | 132 | # MightyMoose 133 | *.mm.* 134 | AutoTest.Net/ 135 | 136 | # Web workbench (sass) 137 | .sass-cache/ 138 | 139 | # Installshield output folder 140 | [Ee]xpress/ 141 | 142 | # DocProject is a documentation generator add-in 143 | DocProject/buildhelp/ 144 | DocProject/Help/*.HxT 145 | DocProject/Help/*.HxC 146 | DocProject/Help/*.hhc 147 | DocProject/Help/*.hhk 148 | DocProject/Help/*.hhp 149 | DocProject/Help/Html2 150 | DocProject/Help/html 151 | 152 | # Click-Once directory 153 | publish/ 154 | 155 | # Publish Web Output 156 | *.[Pp]ublish.xml 157 | *.azurePubxml 158 | # Note: Comment the next line if you want to checkin your web deploy settings, 159 | # but database connection strings (with potential passwords) will be unencrypted 160 | *.pubxml 161 | *.publishproj 162 | 163 | # Microsoft Azure Web App publish settings. Comment the next line if you want to 164 | # checkin your Azure Web App publish settings, but sensitive information contained 165 | # in these scripts will be unencrypted 166 | PublishScripts/ 167 | 168 | # NuGet Packages 169 | *.nupkg 170 | # The packages folder can be ignored because of Package Restore 171 | **/packages/* 172 | # except build/, which is used as an MSBuild target. 173 | !**/packages/build/ 174 | # Uncomment if necessary however generally it will be regenerated when needed 175 | #!**/packages/repositories.config 176 | # NuGet v3's project.json files produces more ignorable files 177 | *.nuget.props 178 | *.nuget.targets 179 | 180 | # Microsoft Azure Build Output 181 | csx/ 182 | *.build.csdef 183 | 184 | # Microsoft Azure Emulator 185 | ecf/ 186 | rcf/ 187 | 188 | # Windows Store app package directories and files 189 | AppPackages/ 190 | BundleArtifacts/ 191 | Package.StoreAssociation.xml 192 | _pkginfo.txt 193 | *.appx 194 | 195 | # Visual Studio cache files 196 | # files ending in .cache can be ignored 197 | *.[Cc]ache 198 | # but keep track of directories ending in .cache 199 | !*.[Cc]ache/ 200 | 201 | # Others 202 | ClientBin/ 203 | ~$* 204 | *~ 205 | *.dbmdl 206 | *.dbproj.schemaview 207 | *.jfm 208 | *.pfx 209 | *.publishsettings 210 | orleans.codegen.cs 211 | 212 | # Since there are multiple workflows, uncomment next line to ignore bower_components 213 | # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) 214 | #bower_components/ 215 | 216 | # RIA/Silverlight projects 217 | Generated_Code/ 218 | 219 | # Backup & report files from converting an old project file 220 | # to a newer Visual Studio version. Backup files are not needed, 221 | # because we have git ;-) 222 | _UpgradeReport_Files/ 223 | Backup*/ 224 | UpgradeLog*.XML 225 | UpgradeLog*.htm 226 | 227 | # SQL Server files 228 | *.mdf 229 | *.ldf 230 | *.ndf 231 | 232 | # Business Intelligence projects 233 | *.rdl.data 234 | *.bim.layout 235 | *.bim_*.settings 236 | 237 | # Microsoft Fakes 238 | FakesAssemblies/ 239 | 240 | # GhostDoc plugin setting file 241 | *.GhostDoc.xml 242 | 243 | # Node.js Tools for Visual Studio 244 | .ntvs_analysis.dat 245 | node_modules/ 246 | 247 | # Typescript v1 declaration files 248 | typings/ 249 | 250 | # Visual Studio 6 build log 251 | *.plg 252 | 253 | # Visual Studio 6 workspace options file 254 | *.opt 255 | 256 | # Visual Studio 6 auto-generated workspace file (contains which files were open etc.) 257 | *.vbw 258 | 259 | # Visual Studio LightSwitch build output 260 | **/*.HTMLClient/GeneratedArtifacts 261 | **/*.DesktopClient/GeneratedArtifacts 262 | **/*.DesktopClient/ModelManifest.xml 263 | **/*.Server/GeneratedArtifacts 264 | **/*.Server/ModelManifest.xml 265 | _Pvt_Extensions 266 | 267 | # Paket dependency manager 268 | .paket/paket.exe 269 | paket-files/ 270 | 271 | # FAKE - F# Make 272 | .fake/ 273 | 274 | # JetBrains Rider 275 | .idea/ 276 | *.sln.iml 277 | 278 | # CodeRush 279 | .cr/ 280 | 281 | # Python Tools for Visual Studio (PTVS) 282 | __pycache__/ 283 | *.pyc 284 | 285 | # Cake - Uncomment if you are using it 286 | # tools/** 287 | # !tools/packages.config 288 | 289 | # Tabs Studio 290 | *.tss 291 | 292 | # Telerik's JustMock configuration file 293 | *.jmconfig 294 | 295 | # BizTalk build output 296 | *.btp.cs 297 | *.btm.cs 298 | *.odx.cs 299 | *.xsd.cs 300 | 301 | #ExampleRangeTester artifacts 302 | TesterMetadata.xml 303 | 304 | # Backup files 305 | *.bak 306 | 307 | # Local server for npm packages 308 | .npmrc 309 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @DevExpressExampleBot -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/AddingDataEditorsAtRuntime.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net9.0-android;net9.0-ios 4 | Exe 5 | AddingDataEditorsAtRuntime 6 | true 7 | true 8 | enable 9 | 10 | AddingDataEditorsAtRuntime 11 | 12 | com.companyname.addingdataeditorsatruntime 13 | FF5BEBAA-BEA1-4555-9D56-C3F8C83E73AF 14 | 15 | 1.0 16 | 1 17 | 14.2 18 | 21.0 19 | 9.0.10 20 | 21 | 22 | false 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/AddingDataEditorsAtRuntime.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 25.0.1705.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddingDataEditorsAtRuntime", "AddingDataEditorsAtRuntime.csproj", "{225658EB-E704-48FD-8743-95387AC021EA}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {225658EB-E704-48FD-8743-95387AC021EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {225658EB-E704-48FD-8743-95387AC021EA}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {225658EB-E704-48FD-8743-95387AC021EA}.Debug|Any CPU.Deploy.0 = Debug|Any CPU 17 | {225658EB-E704-48FD-8743-95387AC021EA}.Release|Any CPU.ActiveCfg = Release|Any CPU 18 | {225658EB-E704-48FD-8743-95387AC021EA}.Release|Any CPU.Build.0 = Release|Any CPU 19 | {225658EB-E704-48FD-8743-95387AC021EA}.Release|Any CPU.Deploy.0 = Release|Any CPU 20 | EndGlobalSection 21 | GlobalSection(SolutionProperties) = preSolution 22 | HideSolutionNode = FALSE 23 | EndGlobalSection 24 | GlobalSection(ExtensibilityGlobals) = postSolution 25 | SolutionGuid = {EACC01AA-7BA9-4E8A-BABA-907F08FA3A47} 26 | EndGlobalSection 27 | EndGlobal 28 | -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/App.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/App.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace AddingDataEditorsAtRuntime { 2 | public partial class App : Application { 3 | public App() { 4 | InitializeComponent(); 5 | 6 | MainPage = new AppShell(); 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/AppShell.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/AppShell.xaml.cs: -------------------------------------------------------------------------------- 1 | namespace AddingDataEditorsAtRuntime { 2 | public partial class AppShell : Shell { 3 | public AppShell() { 4 | InitializeComponent(); 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /CS/AddingDataEditorsAtRuntime/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |