MVP 模式 - 在被动视图中填充列表和网格

MVP Pattern - Populating lists and grids in passive views

假设我的演示者从我的存储库中获取了我的人员 class 的列表,我想将该列表中的信息绑定到被动视图中的 ListBox 或 DataGridView。

由于视图不应该知道模型,我假设我需要将该列表转换为我的演示者中的 List< string > 并将其传递给视图以绑定到 ListBox 是否正确?

如果我想填充 DataGridView,我应该将什么传递给视图,也许是一个 List>?

是否可以接受专门为视图绑定的模型,演示者将模型从存储库转换为视图的不同模型?

人物模型示例:

public class PersonModel
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string MiddleInitial { get; set; }
}

如果您使用的是真正的 MVP,您将在 Presenter 中获取您的 DataModel 列表并将它们映射到 ViewModel 列表,以便您的数据和视图层之间仍然存在关注点分离。因此,只需在客户端的模型文件夹中创建一个 ViewPerson.cs class,复制与数据模型相同的属性,然后使用 AutoMapper 或自定义映射方法来映射每个属性。