No, you should not pass user interface elements to the domain model for binding / populating.
Ideally, your domain model should be able to be used with Windows Forms / WPF / Silverlight / ASP.NET / MVC, which you will name.
Now I understand the idea that your business objects should know how to store and display themselves, etc. this is the holy grail of OO, but in practice it does not work well, since there are often dependencies (database middleware, user interface components, etc.) with functions that you do not want in your BO assembly, this greatly limits your reusablility .
Something you can do, although it gives your users the illusion that your BO knows how to make yourself, is to use extension classes (in a separate assembly to contain dependencies), something like ...
public static class AddressUIExtensions { public static void DisplayAddress(this Address add, AddressControl control) { ... } }
Then the API user can simply execute
var ctrl = new AddressControl(); address.DisplayAddress(ctrl);
but you still have physical separation.
Tim jarvis
source share