The transition control is nice, but because it is triggered strictly by content changes, it is limited to pretty specific scenarios. I suspect the transition code could work in many more scenarios, it if just knew when to trigger. So this is my proposal: add a BeginUpdate function that would freeze a copy of the content, and an EndUpdate function that would then transition from the frozen copy to the current content. In between the BeginUpdate and EndUpdate, one could make as many changes as needed to the content, without having to actually replace the content.