通过分层数据将视图与MVVM中的ViewModel分离

时间:2018-07-06 15:09:10

标签: c# android mvvm viewmodel

我们有一个数据库架构,其中我们将每个表映射到一个数据传输对象(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对象中保存的数据。 因此,这里的问题是,该自定义视图的界面应该是什么样的?

  • 我们应该直接将ParentViewModel对象列表传递到视图中吗?
  • 我们是否需要一个自定义数据结构来对数据进行抽象处理,然后将其从ParentViewModel传递到视图?

我们的理解是,视图不应直接知道ViewModel。相反,绑定魔术应该将两者联系起来。但是,这对于简单的非分层数据类型似乎是可行的。计划使用一种最适合在C#和Android中使用的方法。

我们如何将视图与ViewModel分离,同时仍将两者与该分层数据绑定在一起?

0 个答案:

没有答案