For my use case, I need to be able to update existing cells. It would've been nice to know ahead of time that the control isn't really design for this use. :-)
In my case, what I'd like is for both the ItemsMapping (a CellMapping, in this case) and the ColorMapping to be ObservableCollection<T>s. This doesn't currently (as of 19.1) work well for multiple reasons, including:
* if the ItemsMapping is initially empty, I get a NullReferenceException because the control is trying to figure out the item type from the first item (which doesn't exist), rather than the generic parameter. So, I give it a dummy item.
* however, if the column/row of this dummy item doesn't exist in the final, 'real' collection, the heatmap will now continue to show that column/row. There only seems to be code for adding data, not updating or removing it. So, I have to force the heatmap to recreate its internal structures from scratch (I haven't figured out how to do this without reflection).
* similarly, it seems that the ColorMapping is only fully taken into consideration once. For example, if I first set the ColorMappingCollection to a range from 0 to 500, and then set it to 0 to 600, the HeatMapLegend still shows 500 as the max label. Again, I have to force the heatmaplegend to recreate its internal structures from scratch (I haven't figured out how to do this without reflection).
* the ColorMapping class has a Label property, but this doesn't seem to take any effect whatsoever.