Hi Gareth,
Thanks for letting us know. This bug was caused due to some adornments API changes for 2019.1, and the sample wasn't updated to handle them.
Basically adornments now track a view line if they are for a decoration and an AdornmentLayer.FindAdornments overload was added with a view line parameter to help locate those. However this particular sample was using a view line as a "tag" instead, so the FindAdornments overload for "object tag" was never getting invoked since it was using the other view line-based overload.
We've fixed the sample for the next maintenance release, but in the meantime if you look in AlternatingRowsAdornmentManager, update each FindAdornments call by casting the "viewLine" argument to an "object", it will pick up the correct tag-based overload.
In our slightly more extensive fix, we have made another utility method in that sample that we use for each place we want to call FindAdornments that effectively does the same object cast:
private IAdornment[] GetAdornmentsWithTag(object tag) {
return this.AdornmentLayer.FindAdornments(tag);
}