I personally do not see anything wrong with this idea. For a complex enough UserControl anyway, a ViewModel is required. However, I would make this (VM) as possible.
Indeed, I saw how some virtual machines were shipped with controls - in Swing (Java). For example, TableModel serves as a kind of VM for JTable . [But without real bindings, Swing VMs are pretty weak.]
Vlad
source share