Will there be a datagrid in 2022?

This is correct. What @KarenA probably means is that the MVP must not have critical bugs that prevent usage in real world apps.

I know what it means… in theory.

In practice , at least with Xojo I find those features/products to be maximumly frustrating.


That too!

As Geoff always says: it’s ready when it’s ready.
Not to compare a datagrid with Xojo for Android, but that project takes more than 5 years already. A long time where you can wonder if they would have done it if they had known. Back in April 2017 Geoff gave us the first demo, it was in Berlin I remember. We would have laughed if he should have told us to expect the first release in 2023.
But anyway, respect. Quite an achievement in proportion to the number of resources available.

You should sell that grid Ian - I’d be interested.

It likely doesn’t have enough features to be sold. For example each row is fixed to one line. It does do:


  • Variable width columns
  • Mouse drag column sizes
  • Single area selection only (either using mouse drag or keyboard)
  • In cell editing of values with callback to store the value
  • Left, centre or right column alignment
  • Full column selection
  • Full row selection
  • Font name / size can be defined for the whole grid only (can include italic / bold etc)
  • Typing starts edit on editable columns (currently only works with macOS)


  • GetData (for cells)
  • GetRowHeader (I return row number)
  • GetColumnHeader (displayed in the centre, my column name)
  • GetColLeftSymbol1 (displayed on the top left of the column header)
  • GetColLeftSymbol2 (displayed on the top left of the column header)
  • GetColRightSymbol (displayed on the top right of the column header)
  • SizeBump (Either the user clicked or navigated over the right / bottom of the grid size)
  • AutoResize (if you double click between header cells)
  • ColResized (using mouse)
  • DeleteDataForSelection (so you can delete your source data if required)
  • EditableColumn (return true to allow edit mechanism to work or not)
  • GetColContextMenu (return a context menu for a column header)
  • GetBodyContextMenu (return a context menu for a data cell or selection)
  • SelectionChanged
  • SetData (returns the string entered by the user)
  • DoubleClickCell (Allows you to define what to do. I start an edit on the cell contents)


  • IgnoreKeyboard (Disables keyboard actions)
  • LastColumn (max column index, 0 based)
  • LastRow (max column index, 0 based)
  • PaintingAllowed (if you are doing a lot of updating disable drawing while they happen)
  • RowsFullySelected (yes or no)
  • ColumnsFullySelected (yes or no)
  • RowsVisible (how many rows are visible on screen)
  • ShowHighlight (Choose if you want a cell to be selectable)

Speaking of listboxes, If anyone wants a listbox control where you can merge cell across rows or columns I open sourced my API 1 listbox subclass that can do and some other things.

I wrote that over 12 years ago but it still works and I still use it once in awhile.

Having been written so long ago , it is not aware of some of the newer features/APIs of the API 1 listbox but still has some useful feature that the standard Xojo Listbox does not,.



Seems fairly comprehensive to me - it’s at least a very good starting point.

You should consider selling it imo.