从模型中的List到ViewModel中的层次结构列表的MVVM

时间:2015-09-24 09:50:03

标签: c# wpf mvvm treeview

我的模型包含一个包含父ID的人物对象的平面列表。此列表未订购,因此孩子可以来到他们的父母之前。

class PersonModel
{
  int ID;
  int Parent;
  string Name;
}

我想在Treeview中显示它,因此在VM中我需要定义Children& Parent作为对其他VM的引用。所以我设置了我的PersonViewModel就像这样;

class PersonVM
{
  readonly PersonModel = _Person;
  PersonVM Parent;
  List<PersonVM> Children;

  public Name {
    get { return Person.Name; }
  }

  public PersonVM(PersonModel Person)
  {
    _Person = Person;
  }
}

在我的TreeView VM中,我有一个构造函数,可以从PersonModel列表中创建PersonVM;

class TreeViewVM
{
  public List<PersonVM> PersonList;

  TreeViewVM(List<PersonModel> Persons)
  {
    foreach (PersonModel Person in Persons)
    {
      PersonList.Add(new PersonVM(Person ));
    }
  }
}

我现在正在努力找出在PersonVM之间创建层次结构的正确方法。我无法从我的主VM访问模型,在我的想法中应该是这样的。但是,这是存储ID的地方。

那么这样做的正确方法是什么?

0 个答案:

没有答案