This reminds me of when I used XSLT for (X)HTML output.

Basically I'd have a server control that took an XSLT for display rather than using a user control with a code-in-front. I would then serialize the object I wanted to display into XML and pass it to the XSLT. The nice thing was that I could use the same C# code for an RSS feed, an HTML list on a page, and a JSON feed to name a few just by swapping out XSLTs.

I imagine WPF is way more elaborate with the 2-way databinding though.