Skip to main content

DataForm<TModel>

Family: Inputs & Forms
Namespace: Tessera.Controls

Use DataForm<TModel> when this interaction is the best match for your screen workflow.

When to use

  • You need a DataForm-style interaction inside the inputs & forms lane.
  • A titled widget surface improves scanability in dense shells.
  • You want explicit user-driven events routed into app state updates.

Minimal usage

csharp.cs
using Tessera.Controls;
using Tessera.Layout;

var widget = new DataForm<TModel>
{
    Title = "DataForm"
};

return Screen.Build(window => window.Body(body => body.Center(widget, width: 44, height: 9)));

Common pitfalls

  • Do not choose DataForm by name only; validate it against the target workflow.
  • Keep this control scoped to the inputs & forms concern; avoid cross-layer state coupling.
  • Handle control events by posting/processing messages; avoid hidden mutation in render paths.
  • Set focused/normal styles intentionally so keyboard focus remains obvious.
  • Keep disabled state explicit and reversible so users understand why actions are blocked.

Public properties

PropertyType
BorderBorderStyle
BorderStyleTextTesseraStyle
DisabledStyleTesseraStyle
EditBufferstring
EmptyTextstring
ErrorStyleTesseraStyle
FieldSeparatorTextstring
FocusedBorderStyleTextTesseraStyle
FocusedSelectedFieldStyleTesseraStyle
FocusedTitleStyleTesseraStyle
FocusMarkerstring
HoveredFieldStyleTesseraStyle
IsDisabledbool
IsEditingbool
IsFocusedbool
IsReadOnlybool
LabelStyleTesseraStyle
LastCommitErrorstring
MaxLabelWidthint
ModelTModel?
NoModelTextstring
PaddingThickness
PlaceholderStyleTesseraStyle
ReadOnlyFieldStyleTesseraStyle
SelectedFieldStyleTesseraStyle
SelectedIndexint
SelectedMarkerstring
ShowFocusMarkerbool
Titlestring
TitleStyleTesseraStyle
UnselectedMarkerstring
ValueStyleTesseraStyle

Public events

EventType
FieldCommittedEventHandler<DataFormFieldCommittedEventArgs<TModel>>?
SelectionChangedEventHandler<DataFormSelectionChangedEventArgs<TModel>>?