希望了解如何最好地实现Presentation Model模式。我已经阅读了关于MVVM的文章,但它不适用于我,因为我没有使用Silverlight或WPF。
希望了解如何最好地实现Presentation Model模式。我已经阅读了关于MVVM的文章,但它不适用于我,因为我没有使用Silverlight或WPF。
Update Controls 在 Windows Forms 中实现了 Presentation Model 模式。您可以使用独立字段编写模型类。
public class Person
{
private Independent<string> _first = new Independent<string>();
private Independent<string> _last = new Independent<string>();
public string First
{
get { return _first; }
set { _first.Value = value; }
}
public string Last
{
get { return _last; }
set { _last.Value = value; }
}
}
然后你可以编写一个带有常规属性的演示模型。
public class PersonPresentationModel
{
private Person _person;
public PersonPresentationModel(Person person)
{
_person = person;
}
public Person Person
{
get { return _person; }
}
public string FullName
{
get { return _person.Last + ", " + _person.First; }
}
}
在您的Windows Forms控件中处理事件,以从演示模型获取数据。
private string FirstName_GetText()
{
return _presentationModel.Person.First;
}
private void FirstName_SetText(string value)
{
_presentationModel.Person.First = value;
}
private string LastName_GetText()
{
return _presentationModel.Person.Last;
}
private void LastName_SetText(string value)
{
_presentationModel.Person.Last = value;
}
private string FullName_GetText()
{
return _presentationModel.FullName;
}
Update Controls 会跟踪依赖项并在模型更改时更新您的 Windows Forms 控件。它甚至可以透过演示模型来查看它所依赖的内容。
你可能会对MVP(Model View Presenter)以及依赖它的丰富应用程序框架,如CAB(来自MS Pattern & Practice团队的组合UI应用程序块)感兴趣。
使用MVP,您可以拥有一个演示模型并利用winform数据绑定。
Jeremy D. Miller博客是关于这种设计和所有其他UI模式的良好信息来源。