首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Winforms中使用Presentation Model?

如何在Winforms中使用Presentation Model?
EN

Stack Overflow用户
提问于 2009-08-17 15:10:08
回答 2查看 775关注 0票数 3

我想知道如何最好地实现Presentation Model模式。我读过关于MVVM的文章,但不适用于我,因为我没有使用Silverlight或WPF。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-14 04:25:18

Update Controls在Windows Forms中实现了“表示模型”模式。您可以使用独立字段编写模型类。

代码语言:javascript
复制
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; }
    }
}

然后编写一个具有常规属性的表示模型。

代码语言:javascript
复制
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窗体控件中的事件以从演示模型中获取数据。

代码语言:javascript
复制
    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;
    }

更新控件将跟踪依赖项,并在模型更改时更新Windows窗体控件。它甚至会通过表示模型来查看它所依赖的内容。

票数 0
EN

Stack Overflow用户

发布于 2009-08-17 15:43:26

您可能对MVP (模型视图呈现器)和依赖它的丰富应用程序框架感兴趣,如CAB (来自MS Pattern & Practice team的组合UI应用程序块)

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

Jeremy D. Miller blog是关于这种设计和所有其他UI模式的一个很好的信息来源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1288508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档