我的模型包含一个包含父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的地方。
那么这样做的正确方法是什么?