我最近使用Passive View方法切换到MVP模式。当视图接口只公开基本的clr类型时,我觉得很舒服,比如映射到TextBoxes的字符串,映射到DropDownLists的IDictionary,映射到某些网格的IEnumerable,转发器。
然而,最后一种方法只适用于那些我只关心一个柱子的网格。如何在IView中映射网格的多行内容?现在,我想到了两个解决方案,两者都不是很出色:
第一个解决方案似乎打破了被动视图规则,同时更接近监督控制器模式,第二个解决了整个MVP模式。 你怎么处理这个?
谢谢,Łukasz答案 0 :(得分:3)
MVP使得webforms开发变得更加容易,除非在这种情况下。但是,如果您使用TDD验证您的IView确实需要该数据网格,那么我真的不知道问题是什么。
我假设你正在尝试这样做:
public interface IView
{
DataTable DataSource {get; set;}
}
public class View : IView {
private GridView _datasource;
public DataSource
{
get { return _datasource; }
set
{
_datasource = value;
_datasource.DataBind();
}
}
当与MVP模式一起使用时,我发现这个小模式非常有用。