Sure. We're using a custom style, but when I set the grid to use the default style, the issue remains. The grid's using a number of groups and frozen columns. Virtualisation is on. Again though, I've removed each of these and the problem remains.
The core of it is a DataTable, generated every time an item is requested, which is set as ItemsSource.
This is our xaml:
It seems to still occur even when the only C# reference to the table is
StockGrid.ItemSource = ourDataTable;
When this line is commented out, there's no leak, but obviously nothing shown on screen either. It's like whenever the new data is assigned to the table, the previous data remains in memory instead of being garbage collected.