If you are required to pay VAT in your location or for other reasons, you may also buy through our FastSpring Store. 


DataView is a subclass of piDogScrollingCanvas, so both must be included in your project to use DataView. You will receive a license code after purchase to include in your app’s open event.

License code is good for all previous versions and those released within 1 year after purchase



DataView for Xojo by piDog Software

DataView is a Listbox control subclassed from piDogScrollingCanvas
piDog DataView is a fast and flexible list viewer by piDog Software. It is an easy to use, drop-in replacement for Xojo’s Listbox control, providing more capabilities and a more native feel. Check out the features!

  • [New] Now allows passing an array of variants to AddRow method
  • [Change] HeadingTextPaint now passes x and width byref to allow changing the location and size of text using built in rendering
  • [Bug] Fix for tabbing out of editableText Cell into CellContainerCell not keeping focus
  • [Bug] DatePicker now allows a full 1 second to type a date

  • [Demo] Inspector window follows more nicely on macOS
  • [New] Added CopyDelimiter and CopyLineBreak properties to allow customizing how cells are copied as text (default=TAB,CRLF)
  • [New] Added Title() method to xWindowWrapper for Xojo cross version compatibility
  • [All] Fix for potential exception in Draw_ResizingColumns
  • [All] Fix for header not scrolling horizontally properly
  • [All] Fix for failure to respect changed value when handling cellDidEdit.
  • [macOS] Setting a material on a DataView now behaves when dataview is within a container.
  • [Win] Improvements in how listHighlightColor is read from OS
  • [Win] Improvement to how dpi changes are detected
  • [Win] Now handles hidpi better on Windows

  • Fix for error running on Windows
  • Fix for error when placed on DesktopUIControl

  • [All] Added SortChildRows function to datasource. Allows for keeping child rows under parents when comparerows is used.
  • [All] Sort no longer automatically called when a cell is changed

  • [Bug] Fix for double click causing next click to fail

  • [Bug] Fix for exception when placed on DesktopWindow
  • Fix for wrong graphics scale in celltextpaint and headertextpaint on retina/hidpi display

  • [New] Internal rendering overhaul.
  • [New] FPS greatly improved for HIDPI/Retina
  • [New] using dashed gridlines no longer slows rendering speed
  • [New] Added CellTextWidth method to get the required width to display the full text for a given cell
  • [New] Added ListColumn.AutoExpandWidth() to allow for automatically expanding column width to show all text in cells of that column
  • [New] Added property DefaultMaxColumnWidth to allow setting a default max width for new columns
  • [New] Added EndEditing parameter to cellDidEdit to allow preventing editing of next cell when tabbing out of editing cell
  • [Change] DataSource renamed to dvDataSource to avoid naming conflicts
  • [All] Fix for popupmenu cells not displaying the currently assigned value
  • [All] Fix for potential exception when user resizing columns
  • [All] Fix for situations where a dataview is embedded in a panel inside a desktopContainer
  • [All] Some improvements to scrolling when a drag is near the edge of the control
  • [All] Home and End keys now scroll to top and bottom of view
  • [All] Fixed a possible exception when resizing columns
  • [Mac] Fix for column alignment Center/Right on M1 Macs

  • [Win] Fixed a bug preventing running on Windows
  • [New] Added property ScrollToFocusOnSort to allow disabling scroll animation when sorting or adding rows to a sorted list

  • [New] Added AutomaticHeadingHeight
  • [New] Added xCompatibilityMod to allow interoperability between Desktop API1 and API2
  • [Bug] Prevents IllegalCastException when placed on TabPanel or Container with Desktop API2

  • [Bug] Fix for ScrollToRect, ScrollCellIntoView not accounting for scrollbars.

  • [Demo] Inspector now displays negative values properly
  • [New] Support for Dark Mode on Windows 10+ with Xojo 2021r3+
  • [New] Added headingHelpTag
  • [New] Added event ScrollabilityChanged and properties CanScrollVertical and CanScrollHorizontal
  • [New] Added UsesThemeHighlightColor property to allow control over whether the user chosen tint color is used as as row selection color with UsesSystemColors=true on Windows.
  • [All] Fixed issue with scrolling and row pickup being slow with a very large list
  • [All] Improved scrolling when SnapToRowTops is true with a large list
  • [All] Fixes for when scrollbars show/hide
  • [All] Fix for cell borders when scrolling past left edge with locked columns.
  • [All] Fixed a bug in RemoveRow where depopulate values could be called after the row was removed causing values to be saved to the wrong row.
  • [All] Fix issue where doubleClick could be called twice
  • [Win] Improvements for scrollbar rendering when scroll buttons are visible on Win10+

I am often asked how DataView compares to Listbox in terms of adding rows.

Here’s a comparison adding 100,000 rows of 3 columns:

macOS 64bit:
– ListBox: 3 Seconds
– DataView: 3 Seconds

Windows8 64bit:
– ListBox: 43 Seconds
– DataView: 2 Seconds

Linux Mint 64bit:
– Listbox: 2 Seconds
– DataView: 3 Seconds

Of course DataView also includes some on-demand options allowing a list of 5,000,000+ rows to load instantly. It only depends on the speed of your back-end.

Try it out for free!

Download the demo project to see how it works. If you decide to use it in a production app, just buy a license code and plug it in.

DataView and piDogScrollingCanvas

32bit 64bit ARM64

Size: 23.3 MB
Published: April 2, 2023


There are no reviews yet.

Be the first to review “DataView”

This site uses Akismet to reduce spam. Learn how your comment data is processed.