Skip to content

Cell Types

Shiny.Maui.TableView provides 14 built-in cell types. All cells inherit from CellBase and share a common set of properties for titles, descriptions, icons, borders, and selection behavior.

All cells inherit these properties from CellBase:

PropertyTypeDefaultDescription
Titlestring""Primary text
TitleColorColor?nullTitle color
TitleFontSizedouble-1Title font size (-1 = use global)
TitleFontFamilystring?nullTitle font family
TitleFontAttributesFontAttributes?nullTitle styling (Bold, Italic, None)
Descriptionstring""Subtitle text below title
DescriptionColorColor?nullDescription color
DescriptionFontSizedouble-1Description font size
DescriptionFontFamilystring?nullDescription font family
DescriptionFontAttributesFontAttributes?nullDescription styling
HintTextstring""Hint text to the right of the title
HintTextColorColor?nullHint color
HintTextFontSizedouble-1Hint font size
HintFontFamilystring?nullHint font family
HintFontAttributesFontAttributes?nullHint styling
IconSourceImageSource?nullIcon on the left
IconSizedouble-1Icon dimensions
IconRadiusdouble-1Icon corner radius
CellBackgroundColorColor?nullCell background
SelectedColorColor?nullBackground color when tapped
IsSelectablebooltrueWhether the cell responds to taps
IsEnabledbooltrueDisabled cells are dimmed (0.4 opacity)
CellHeightdouble-1Fixed cell height
BorderColorColor?nullCell border color
BorderWidthdouble-1Cell border width
BorderRadiusdouble-1Cell border corner radius

Displays a title with an optional value text on the right. Use for read-only display and information rows.

<tv:LabelCell Title="Version"
ValueText="1.0.0"
Description="Latest stable release" />
PropertyTypeDefaultDescription
ValueTextstring""Text displayed on the right side
ValueTextColorColor?nullValue text color
ValueTextFontSizedouble-1Value font size
ValueTextFontFamilystring?nullValue font family
ValueTextFontAttributesFontAttributes?nullBold, Italic, or None

A cell with a toggle switch for boolean values.

<tv:SwitchCell Title="Wi-Fi"
On="{Binding WifiEnabled, Mode=TwoWay}"
OnColor="#34C759" />
PropertyTypeDefaultDescription
OnboolfalseSwitch state (two-way bindable)
OnColorColor?nullSwitch color when on

A cell with a native checkbox control.

<tv:CheckboxCell Title="Accept Terms"
Checked="{Binding Accepted, Mode=TwoWay}"
AccentColor="#007AFF" />
PropertyTypeDefaultDescription
CheckedboolfalseCheckbox state (two-way bindable)
AccentColorColor?nullCheckbox color

A cell that shows/hides a checkmark on tap. Useful for selection lists without a native checkbox control.

<tv:SimpleCheckCell Title="Option A"
Checked="{Binding OptionA, Mode=TwoWay}"
AccentColor="Green" />
PropertyTypeDefaultDescription
CheckedboolfalseCheck state (two-way bindable)
Valueobject?nullAssociated value
AccentColorColor?nullCheckmark color

Radio button selection within a section. Cells within the same section are mutually exclusive. Use the RadioCell.SelectedValue attached property on the parent TableSection to bind the selected value.

<tv:TableSection Title="Theme"
tv:RadioCell.SelectedValue="{Binding SelectedTheme, Mode=TwoWay}">
<tv:RadioCell Title="Light" Value="Light" />
<tv:RadioCell Title="Dark" Value="Dark" />
<tv:RadioCell Title="System" Value="System" />
</tv:TableSection>
PropertyTypeDefaultDescription
Valueobject?nullThe value this radio button represents
AccentColorColor?nullRadio indicator color

A tappable cell with a disclosure arrow that executes a command. Inherits all properties from LabelCell.

<tv:CommandCell Title="Privacy Policy"
ValueText="View"
Command="{Binding PrivacyCommand}"
ShowArrow="True"
KeepSelectedUntilBack="True" />
PropertyTypeDefaultDescription
CommandICommand?nullCommand to execute on tap
CommandParameterobject?nullParameter passed to command
ShowArrowbooltrueShow disclosure arrow
KeepSelectedUntilBackboolfalseKeep highlight until page reappears

A full-width button-style cell for primary or destructive actions.

<tv:ButtonCell Title="Sign Out"
Command="{Binding SignOutCommand}"
ButtonTextColor="Red" />
PropertyTypeDefaultDescription
CommandICommand?nullCommand to execute
CommandParameterobject?nullParameter passed to command
ButtonTextColorColor?nullButton text color
TitleAlignmentTextAlignmentCenterText alignment

A cell with an inline text entry field.

<tv:EntryCell Title="Email"
ValueText="{Binding Email, Mode=TwoWay}"
Placeholder="user@example.com"
Keyboard="Email" />
PropertyTypeDefaultDescription
ValueTextstring""Entry text (two-way bindable)
Placeholderstring""Placeholder text
PlaceholderColorColor?nullPlaceholder color
KeyboardKeyboardDefaultKeyboard type (Default, Email, Numeric, Telephone, Url, Chat)
IsPasswordboolfalseMask input
MaxLengthint-1Max characters (-1 = unlimited)
TextAlignmentTextAlignmentEndText alignment
CompletedCommandICommand?nullCommand executed on return key
ValueTextColorColor?nullEntry text color

Tapping anywhere on the cell opens the native date picker dialog.

<tv:DatePickerCell Title="Birthday"
Date="{Binding BirthDate, Mode=TwoWay}"
Format="D"
MinimumDate="1900-01-01"
MaximumDate="2025-12-31" />
PropertyTypeDefaultDescription
DateDateTime?nullSelected date (two-way bindable)
InitialDateDateTime2000-01-01Date shown in picker when no date is set
MinimumDateDateTime1900-01-01Earliest selectable date
MaximumDateDateTime2100-12-31Latest selectable date
Formatstring"d"Date format string ("d", "D", or custom)
ValueTextColorColor?nullValue text color

Tapping anywhere on the cell opens the native time picker dialog.

<tv:TimePickerCell Title="Alarm"
Time="{Binding AlarmTime, Mode=TwoWay}"
Format="T" />
PropertyTypeDefaultDescription
TimeTimeSpan00:00:00Selected time (two-way bindable)
Formatstring"t"Time format string ("t", "T", or custom)
ValueTextColorColor?nullValue text color

Tapping the cell opens a native dropdown/spinner picker for selecting from a list of items.

<tv:TextPickerCell Title="Color"
ItemsSource="{Binding Colors}"
SelectedIndex="{Binding SelectedColorIndex, Mode=TwoWay}"
PickerTitle="Choose a color" />
PropertyTypeDefaultDescription
ItemsSourceIList?nullList of items
SelectedIndexint-1Selected index (two-way bindable)
SelectedItemobject?nullSelected item (two-way bindable)
DisplayMemberstring?nullProperty name for display text
PickerTitlestring?nullTitle shown on picker dialog
SelectedCommandICommand?nullCommand executed on selection
ValueTextColorColor?nullValue text color

Tapping the cell opens a prompt dialog for numeric input with min/max constraints.

<tv:NumberPickerCell Title="Font Size"
Number="{Binding FontSize, Mode=TwoWay}"
Min="8" Max="72"
Unit="pt" />
PropertyTypeDefaultDescription
Numberint?nullSelected number (two-way bindable)
Minint0Minimum value
Maxint9999Maximum value
Unitstring""Unit suffix displayed after the number (e.g., “pt”, “px”)
PickerTitlestring"Enter a number"Dialog title
SelectedCommandICommand?nullCommand executed on selection
ValueTextColorColor?nullValue text color

A full-page picker that navigates to a dedicated selection page on tap. Supports both single and multiple selection.

<!-- Single selection -->
<tv:PickerCell Title="Country"
ItemsSource="{Binding Countries}"
SelectionMode="Single"
SelectedItem="{Binding SelectedCountry, Mode=TwoWay}"
PageTitle="Select Country"
ShowArrow="True" />
<!-- Multiple selection -->
<tv:PickerCell Title="Hobbies"
ItemsSource="{Binding Hobbies}"
SelectionMode="Multiple"
MaxSelectedNumber="3"
SelectedItems="{Binding SelectedHobbies, Mode=TwoWay}"
PageTitle="Select Hobbies" />
PropertyTypeDefaultDescription
ItemsSourceIEnumerable?nullItems to pick from
SelectedItemobject?nullSelected item (two-way, single mode)
SelectedItemsIList?nullSelected items (two-way, multiple mode)
SelectionModeSelectionModeSingleSingle or Multiple
MaxSelectedNumberint0Max selections (0 = unlimited)
UsePickToCloseboolfalseAuto-close picker when max selections reached
UseAutoValueTextbooltrueAuto-generate display text from selections
DisplayMemberstring?nullProperty name for display text
SubDisplayMemberstring?nullProperty name for subtitle text
PageTitlestring"Select"Picker page title
ShowArrowbooltrueShow disclosure arrow
KeepSelectedUntilBackboolfalseKeep highlight until page returns
SelectedCommandICommand?nullCommand executed on selection change
AccentColorColor?nullCheckmark color on picker page

A cell that hosts any custom MAUI view in the accessory area.

<tv:CustomCell Title="Progress">
<tv:CustomCell.CustomContent>
<ProgressBar Progress="0.75" />
</tv:CustomCell.CustomContent>
</tv:CustomCell>
<!-- Full-width custom content -->
<tv:CustomCell UseFullSize="True">
<tv:CustomCell.CustomContent>
<Grid Padding="16">
<Label Text="Full-width custom layout" />
</Grid>
</tv:CustomCell.CustomContent>
</tv:CustomCell>
PropertyTypeDefaultDescription
CustomContentView?nullCustom view to display
UseFullSizeboolfalseUse full cell width for content (hides title/icon)
CommandICommand?nullCommand on tap
LongCommandICommand?nullCommand on long press
ShowArrowboolfalseShow disclosure arrow
KeepSelectedUntilBackboolfalseKeep highlight until page returns