Skip to content

Enhanced UI controls for .NET MAUI applications - ComboBox with filtering, autocomplete, and image support

License

Notifications You must be signed in to change notification settings

stef-k/MauiControlsExtras

Repository files navigation

MAUI Controls Extras

A comprehensive collection of 15 enterprise-grade UI controls for .NET MAUI applications that fill gaps in the standard control library.

NuGet License: MIT

Work in Progress: This library is under active development. APIs may change between releases. See the Changelog for breaking changes.

Demo Application

A complete cross-platform demo app showcasing all controls is available in samples/DemoApp/.

Run the demo on Android:

dotnet build samples/DemoApp/DemoApp.csproj -f net10.0-android
dotnet build samples/DemoApp/DemoApp.csproj -t:Run -f net10.0-android

Note: The demo uses direct event handlers for simplicity. For production apps, we recommend proper MVVM patterns with commands and view models.

Desktop Mobile
MAUI Controls Extras Demo - Desktop MAUI Controls Extras Demo - Mobile

Mobile screenshot coverage: 15/15 controls.

Available Controls

Control Description
Accordion Expandable/collapsible sections with single or multiple expand modes
BindingNavigator Data navigation toolbar for browsing collections
Breadcrumb Hierarchical navigation path display
Calendar Date picker with single, multiple, and range selection modes
ComboBox Searchable dropdown with complex object and icon support
DataGridView Enterprise data grid with sorting, filtering, grouping, and editing
MultiSelectComboBox Multi-selection dropdown with checkboxes
NumericUpDown Numeric input with increment/decrement buttons
PropertyGrid Property editor similar to Visual Studio Properties panel
RangeSlider Dual-thumb slider for range selection
Rating Star/icon-based rating control
RichTextEditor WYSIWYG HTML/Markdown editor with Quill.js
TokenEntry Tag/token input with autocomplete
TreeView Hierarchical tree view with expand/collapse
Wizard Step-by-step wizard/stepper for multi-page forms

Key Features

  • Cross-Platform - Android, iOS, macOS Catalyst, and Windows
  • Keyboard Navigation - Full keyboard support on desktop platforms
  • Mouse Interaction - Click, double-click, right-click, hover, scroll
  • Clipboard Support - Ctrl+C/V/X for copy/paste operations
  • Undo/Redo - Ctrl+Z/Y for undoable operations
  • Theme-Aware - Automatic light/dark mode support
  • MVVM-Friendly - Full data binding with commands
  • MIT Licensed - Free for commercial and personal use

Installation

NuGet Package Manager

Install-Package StefK.MauiControlsExtras

.NET CLI

dotnet add package StefK.MauiControlsExtras

Quick Start

1. Add the namespace

xmlns:extras="clr-namespace:MauiControlsExtras.Controls;assembly=MauiControlsExtras"

2. Use the controls

<!-- ComboBox with search -->
<extras:ComboBox ItemsSource="{Binding Countries}"
                 SelectedItem="{Binding SelectedCountry, Mode=TwoWay}"
                 DisplayMemberPath="Name"
                 Placeholder="Select a country..." />

<!-- DataGrid with sorting, filtering, and various column types -->
<extras:DataGridView ItemsSource="{Binding Employees}"
                     CanUserEdit="True"
                     CanUserSort="True"
                     CanUserFilter="True">
    <extras:DataGridView.Columns>
        <extras:DataGridTextColumn Header="Name" Binding="Name" />
        <extras:DataGridTextColumn Header="Salary" Binding="Salary" Format="C0" />
        <extras:DataGridDatePickerColumn Header="Hire Date" Binding="HireDate" Format="d" />
        <extras:DataGridCheckBoxColumn Header="Active" Binding="IsActive" />
    </extras:DataGridView.Columns>
</extras:DataGridView>

<!-- RichTextEditor with dark theme support -->
<extras:RichTextEditor HtmlContent="{Binding Content, Mode=TwoWay}"
                       ThemeMode="Auto"
                       Placeholder="Start typing..." />

<!-- Calendar with date range selection -->
<extras:Calendar SelectionMode="Range"
                 RangeStart="{Binding StartDate, Mode=TwoWay}"
                 RangeEnd="{Binding EndDate, Mode=TwoWay}" />

<!-- TreeView with hierarchical data -->
<extras:TreeView ItemsSource="{Binding Folders}"
                 ChildrenPath="SubFolders"
                 DisplayMemberPath="Name" />

Supported Platforms

  • Android 5.0+ (API 21)
  • iOS 15.0+
  • macOS Catalyst 15.0+
  • Windows 10.0.17763.0+

Requirements

  • .NET 10.0 or later
  • .NET MAUI workload

Documentation

Full documentation is available at: https://stef-k.github.io/MauiControlsExtras/

Contributing

Contributions are welcome! Please see the Contributing Guide for guidelines.

License

This project is licensed under the MIT License - see the LICENSE file for details.