我正在使用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