I call it a 4 headed beast because I had 4 major hurdles
1 - Code the UI. A custom user control is all code, there is NO WYSIWYG to set it all up.
2 - Code a templated control. The base control was a form view with a read only and edit mode with lots of text boxes and labels AND it had to be bound to a
3- Wire up all the events and make sure I could switch from edit to read only mode plus the actual updating of the data back to the database.
4- Test, Test, Test.