CheckBoxColumn<TModel> displays boolean values as checkboxes.
It supports:
bool getter only)bool getter + setter)bool? getter + optional setter)Two-state read-only:
new CheckBoxColumn<Person>("Active", x => x.IsActive)
Two-state editable:
new CheckBoxColumn<Person>("Active", x => x.IsActive, (m, v) => m.IsActive = v)
Three-state editable:
new CheckBoxColumn<Person>("Verified", x => x.IsVerified, (m, v) => m.IsVerified = v)
The bool? overload enables three-state behavior (true, false, null).
Internally:
CheckBoxColumnOptions<TModel> inherits common ColumnOptions<TModel>.
Useful settings:
CanUserResizeColumnCanUserSortColumnCompareAscending / CompareDescendingMinWidth, MaxWidthExample:
new CheckBoxColumn<FileNode>(
header: null,
getter: x => x.IsChecked,
setter: (m, v) => m.IsChecked = v,
options: new CheckBoxColumnOptions<FileNode>
{
CanUserResizeColumn = false,
MinWidth = new GridLength(28),
MaxWidth = new GridLength(40),
})
Sorting follows ColumnOptions<TModel> comparers when provided.
For custom sort order, set:
CompareAscendingCompareDescendingFeature behavior differs from expectations
Cause: one or more options in this scenario are configured differently (source type, column options, sort/selection/edit state).
Fix: compare your setup with the snippet in this article and verify runtime values on Source, Columns, and Selection.
Data changes are not visible in UI
Cause: model or collection notifications are missing, or a replaced collection/source is not re-bound.
Fix: ensure INotifyPropertyChanged/INotifyCollectionChanged flow is active and reassign Source after replacing underlying collections.