一个非常常见的模式是模型视图演示者模式 (MVP)。
这里的关键是定义一个代表您的视图的接口。例如,您的视图可能有一个属性。
还有一个应该负责视图和模型之间通信的演示者。
所以一个视图会是这样的:
internal interface IListClientsView
{
public string Title { set; }
public IList<Client> Clients { set; }
}
Web 表单中的实现是这样的:
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接口并调用相关的presenter。演示者看起来像这样:
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