You can build an extensible control. I have a simple example on my blog; it should give an idea. Then you can learn more details from documentation.
link is broken…
Sorry! It should work now.