我正在使用WPF,我正在开发一个复杂的用户控件,它由一个具有丰富功能的树组成。 为此,我使用了View-Model设计模式,因为有些操作无法直接实现在WPF中。所以,我把IHierarchyItem(这是一个节点,并把它传递给这个构造函数来创建一个树形结构)没有递归/堆栈使用(C#)的树遍历?
private IHierarchyItemViewModel(IHierarchyItem hierarchyItem, IHierarchyItemViewModel parent)
{
this.hierarchyItem = hierarchyItem;
this.parent = parent;
List<IHierarchyItemViewModel> l = new List<IHierarchyItemViewModel>();
foreach (IHierarchyItem item in hierarchyItem.Children)
{
l.Add(new IHierarchyItemViewModel(item, this));
}
children = new ReadOnlyCollection<IHierarchyItemViewModel>(l);
}
是,此构造需要大约3秒钟的问题! 200个项目在我的双核上。 我做任何错误或递归的构造函数调用是慢? 非常感谢!
确定上面的所有内容都是正确的。问题存在于hierarchyItem.Children中,因为它耗时太长。 – 2009-07-15 13:28:23