Skip to content

Table Demo Example

The Table Demo shows how to use the Table widget to display structured data with columns, rows, selection, and specialized column types.

  • Creating tables with columns
  • Data binding with lambda expressions
  • Specialized columns (ProgressColumn, CheckboxColumn)
  • Row selection and activation
  • Custom data models
var table = new Table();
table.AddColumn("Task", 30).BindTo<TaskItem>(t => t.Name);
table.AddColumn("Status", 12).BindTo<TaskItem>(t => t.Status);
table.AddColumn(new ProgressColumn("Progress", 20)
{
ShowPercentage = true
}.BindTo<TaskItem>(t => t.Progress));
table.AddColumn(new CheckboxColumn("Done", 6)
.BindTo<TaskItem>(t => t.IsComplete));
var tasks = new List<TaskItem>
{
new("Implement login page", "In Progress", 65, false, "High", "Alice"),
new("Design database schema", "Complete", 100, true, "High", "Bob")
};
table.DataSource = tasks;
table.RowSelected += row =>
{
if (row.Data is TaskItem task)
statusBar.LeftText = $"Selected: {task.Name}";
};
table.RowActivated += row =>
{
if (row.Data is TaskItem task)
statusBar.CenterText = $"Activated: {task.Name}";
};
Terminal window
cd examples/Elaris.Examples.TableDemo
dotnet run
  • Tables are ideal for structured data
  • Lambda expressions provide flexible data binding
  • Specialized columns add visual elements
  • Row selection and activation enable interaction