With respect to your first question: you shouldn't try to do this. If you pass in a concrete class that doesn't have the required properties you'll get an exception. I suggest you create your own control for the Interface, then specialize it for the concrete class you want to use.
With respect to your second question, you can set up an object data source and bind to that or you can take a look at
http://msdn.microsoft.com/en-us/library/y0wfd4yz.aspx[
^]. Binding an individual object to a list control doesn't make much sense however.
Hope this helps!