Очень распространенным шаблоном для этого является шаблон Представление модели (MVP).
Ключом здесь является определение интерфейса, который будет представлять ваше представление.Например, ваше представление может иметь свойство.
И презентатор, который должен отвечать за связь между представлением и моделью.
Таким образом, представление будет выглядеть примерно так:
internal interface IListClientsView
{
public string Title { set; }
public IList<Client> Clients { set; }
}
И реализация в веб-форме будет такой:
public partial class WebForm1 : System.Web.UI.Page, IListClientsView
{
ListClientsPresenter presenter;
protected void Page_Load(object sender, EventArgs e)
{
presenter = new ListClientsPresenter(this);
if (!Page.IsPostBack)
presenter.LoadView();
}
public IList<Client> Clients
{
set { GrvClients.DataSource = value;
GrvClients.DataBind();
}
}
}
Конечно, это также может быть WinForm.Ключ заключается в том, чтобы сделать WinForm дополнением интерфейса IxxxView и вызвать связанного докладчика.Докладчик будет выглядеть так:
public class ListClientsPresenter
{
IListClientsView View;
public ListClientsPresenter(IListClientsView view)
{
this.View = view;
}
public void LoadView()
{
View.Title = "List of Clients";
View.Clients = new List<Client> {
new Client {Name = "Client 1"},
new Client {Name = "Client 2"}
};
}
}
Это очень простой пример, вы должны проверить эту статью: http://msdn.microsoft.com/en-us/magazine/cc188690.aspx