From the docs for XmlDataSource.EnableCaching it says the following:
The default value is true.
Which is a little strange for starters given some of its siblings (e.g. SqlDataSource and ObjectDataSource), but OK, fair enough.
It also says:
the data source will cache data until the XML file that it depends on is changed
Which would be fine, only my data source object isn't depending on a file, and I'm setting its Data property manually. Unfortunately, setting Data to what you want doesn't appear to invalidate the cache, and so you end up with what was there previously anyway.
But hang on a minute - the docs for XmlDataSource.Data specifically say:
If caching is enabled and you change the value of Data, the cache is invalidated.
I don't believe you!
Another bit of my life I'm never getting back, finding that little nugget...