在MVP中通过接口显示列表框中的项目

本文关键字:列表 显示 项目 接口 MVP | 更新日期: 2023-09-27 18:07:45

MVP应用程序中,我的演示者希望访问/更新View上的列表框中的数据。Presenter通过接口IViewView通信。因此,我计划通过以下属性公开列表框中的。但是在这种情况下使用单个属性有一个问题。

Interface IView
{
    List<string> Permission;
}

class Form : IView
{
    public List<string> Permission
    {
        get { return lstGivenPermissions; } // Casting error
        set { lstGivenPermissions.DataSource = value; }
    }
}

这样我的Presenter应该能够访问和更新列表中的数据,如下所示

class Presenter
{
    UpdateModelFromView()
    {
        Model.Permission = View.Permission;
    }
UpdateViewFromModel()
    {
        View.Permission = Model.Permission;
    }
}

我的Model应该是这样的

class Model
{
    Ipublic List<string> Permission = new List<string>();
    //
}

我知道由于数据类型不匹配,上面的代码将不会被编译。(铸造错误).

你能告诉我如何才能做到这一点吗?

在MVP中通过接口显示列表框中的项目

我在找这个…

    public List<string> Permission
    {
        get { return lstGivenPermissions.Items.Cast<string>().ToList(); } //
        set { lstGivenPermissions.DataSource = value; }
    }

它解决了我的问题!!