通过MVP中的接口公开ListBox中的项目

时间:2014-06-09 04:40:20

标签: c# .net list interface mvp

MVP应用程序中,我的演示者想要在View上的列表框中访问/更新数据。 Presenter通过界面ViewIView对话。因此,我计划通过属性公开列表框中的项目,如下所示。但在这种情况下我使用单个属性时遇到问题。

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>();
    //
}

我知道由于数据类型不匹配,上述代码不会被编译。 (投射错误)。

请您告诉我如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

我一直在寻找......

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

它解决了我的问题!!!