我有一个对象,可以是其他对象的父对象。它是客户的代表。看起来像这样
public class Site
{
public int SiteId;
public List<Site> Children;
public Site Parent;
}
当Parent
为null时,它是顶级或根对象。并非所有物品都有孩子。我们对网站的下限数量没有限制。我们的应用程序旨在将用户和其他数据绑定到特定站点,无论它是树中任何位置的根节点还是子节点。出于这个原因,我必须知道用户正在使用的网站以撤回正确的数据。
我的问题是允许用户遍历此树的最佳方法是什么?有很多节点,所以返回一切都不是理想的。而不是立即返回我的模型对象中的所有子项,而是简单地返回一个布尔值,注意该站点是否有子项。然后,当用户点击该选项时,我的计划是获取该节点的子节点,并显示它们以供选择。
我正在考虑以与大多数设置菜单类似的方式使用ListView
,如果它们是选项,则会显示箭头。我也看了Menu
,但我不确定最好的方法。
答案 0 :(得分:0)
树的遍历基本上归结为深度优先或广度优先搜索。但是,根据您对应用的描述,这可能不是最佳方法。
我看到的类似于你所描述的结构的一件事将列出父母(直到根)和当前观察节点的子节点。如果您提供有关如何使用此树的遍历的更多信息,我可以尝试进一步帮助您。
此外,只有在没有循环的情况下,上述方法才有效。