How to serialise control + code in WPF?
===

I have a canvas which contains several userControls, which in it's turn contains other objects.
I want to serialise the canvas and preserve all databindings and whole visual tree (not all objects can be described in xaml). 

I thought creating a custom control which extends canvas and adds ability to serialise will solve this problem.

So the question is: is it a right approach? If not, what is the best way to do it?