我们有一个数据库架构,其中我们将每个表映射到一个数据传输对象(DTO)类。然后将这些DTO包裹到ViewModel(VM)中,如下所示:
public class ParentDTO
{
public int ParentId { get; set; }
public string Name { get; set; }
}
public class ChildDTO
{
public int ChildId { get; set; }
public int ParentId { get; set; }
public string Name { get; set; }
}
public class ParentViewModel
{
// Initialization of _parentDTO with data.
// Initialization of _ children with data.
public string Name
{
get { return _parentDTO.Name; }
set { _parentDTO.Name = value; }
}
public List<ChildViewModel> Children
{
get { return _children; }
}
}
// ChildViewModel omitted, just wraps ChildDTO...
现在,我们需要一个自定义视图,以可视化方式显示多个ParentDTO对象及其所有关联的ChildDTO对象中保存的数据。 因此,这里的问题是,该自定义视图的界面应该是什么样的?
我们的理解是,视图不应直接知道ViewModel。相反,绑定魔术应该将两者联系起来。但是,这对于简单的非分层数据类型似乎是可行的。计划使用一种最适合在C#和Android中使用的方法。
我们如何将视图与ViewModel分离,同时仍将两者与该分层数据绑定在一起?