Skip to content
Shiny Controls v1.0 - The Ultra Control Suite for .NET MAUI & BlazorO...M...G!

TableView | Getting Started

A settings-style TableView for .NET MAUI, inspired by AiForms.Maui.SettingsView by Kaoru Nakamura (muak).

GitHub GitHub stars for shinyorg/controls
MAUI NuGet downloads for Shiny.Maui.Controls
Blazor NuGet downloads for Shiny.Blazor.Controls
Frameworks
.NET MAUI
Blazor

MAUI

Basic Dynamic Drag & Sort Pickers Styling
Basic Dynamic Drag & Sort Pickers Styling

Blazor

Sections, cells and accents Cell type gallery More cell types
Sections, cells and accents on Blazor Cell type gallery on Blazor More cell types on Blazor

AiForms.SettingsView uses native platform controls under the hood (UITableView on iOS, RecyclerView on Android) with custom MAUI handlers. This gives great native fidelity but ties the implementation to platform-specific code.

Shiny.Maui.TableView takes a pure .NET MAUI approach. The entire control is built from standard MAUI layouts and views. This means:

  • Any MAUI target — Works on iOS, Android, MacCatalyst, Windows, Tizen, and any future MAUI target. The library includes platform targets for Android and iOS/MacCatalyst solely to provide borderless Entry rendering on those platforms — all other controls work everywhere without any platform-specific code.
  • Single codebase — No custom renderers or platform projects to maintain
  • Dark mode support — Respects the system theme automatically; no hardcoded colors
  • Fully styleable — Cascading style system from TableView → Section → Cell with per-cell overrides
  • XAML-first — All properties are BindableProperty with full MVVM/binding support

The trade-off is that you get MAUI’s rendering rather than native list controls, but for settings screens with dozens (not thousands) of items, this is the right trade-off.

  • 15 built-in cell types for common settings patterns
  • Cascading style system (TableView → Section → Cell)
  • Full MVVM support with BindableProperty on everything
  • Dynamic sections and cells via ItemsSource / ItemTemplate
  • Drag & sort reordering within sections
  • Programmatic scroll control
  • Section headers and footers (text or custom views)
  • Cell icons, hints, descriptions, and borders
  • Selection highlighting with customizable colors
  1. Install the NuGet package

    Terminal window
    dotnet add package Shiny.Maui.Controls
  2. Register in your MauiProgram.cs

    using Shiny;
    var builder = MauiApp.CreateBuilder();
    builder
    .UseMauiApp<App>()
    .UseShinyControls();
  3. Add the XAML namespace to your pages

    xmlns:shiny="http://shiny.net/maui/controls"
<tv:TableView>
<tv:TableRoot>
<tv:TableSection Title="Account">
<tv:SwitchCell Title="Notifications"
On="{Binding NotificationsOn, Mode=TwoWay}" />
<tv:EntryCell Title="Username"
ValueText="{Binding Username, Mode=TwoWay}"
Placeholder="Enter name" />
<tv:CommandCell Title="About"
Command="{Binding AboutCommand}"
ShowArrow="True" />
</tv:TableSection>
</tv:TableRoot>
</tv:TableView>

The TableView is structured as a simple tree:

tv:TableView ← ScrollView + global styles
└─ tv:TableRoot ← Container for sections
└─ tv:TableSection ← Groups cells with header/footer
└─ tv:[CellType] ← Individual cells (15 types)
  • Cell Types — All 15 cell types with properties and examples
  • Sections — Section configuration and dynamic content
  • Styling — Cascading style system and global properties
  • Advanced — Drag & sort, scroll control, and events
claude plugin marketplace add shinyorg/skills
claude plugin install shiny@shiny

One plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.

copilot plugin marketplace add https://github.com/shinyorg/skills
copilot plugin install shiny@shiny

One plugin installs all 35 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.

View Skills Repository

This project was inspired by AiForms.Maui.SettingsView by Kaoru Nakamura (muak), licensed under MIT. AiForms.SettingsView pioneered the rich settings TableView pattern for Xamarin.Forms and .NET MAUI using native platform renderers.

Shiny.Maui.TableView reimagines that feature set as a pure .NET MAUI implementation — no custom renderers — making it simpler to maintain and extend while supporting the same cell types and styling capabilities. It works on all .NET MAUI platforms out of the box.