你如何在Winforms中使用Presentation Model?

3

希望了解如何最好地实现Presentation Model模式。我已经阅读了关于MVVM的文章,但它不适用于我,因为我没有使用Silverlight或WPF。

2个回答

0

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 控件。它甚至可以透过演示模型来查看它所依赖的内容。


0

你可能会对MVP(Model View Presenter)以及依赖它的丰富应用程序框架,如CAB(来自MS Pattern & Practice团队的组合UI应用程序块)感兴趣。

使用MVP,您可以拥有一个演示模型并利用winform数据绑定。

Jeremy D. Miller博客是关于这种设计和所有其他UI模式的良好信息来源。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接