我正在使用MVVM構建wpf應用程序。我的ViewModels僱傭的延遲加載象下面這樣:WPF數據綁定性能
public class AssignmentsViewModel
{
List<AssignmentViewModel> _Assignments;
public List<AssignmentViewModel> Assignments
{
get
{
if (_Assignments == null)
_Assignments = new List<AssignmentViewModel>(Data.GetAssignments());
return _Assignments;
}
set { _Assignments = value; }
}
}
public class AssignmentViewModel
{
List<NoteViewModel> _Notes;
public List<NoteViewModel> Notes
{
get
{
if (_Notes == null)
_Notes = new List<NoteViewModel>(Data.GetNotes());
return _Notes;
}
set { _Notes = value; }
}
}
視圖已經在ListView並與一個DataTemplate一個ListBox中的注意事項的AssignmentViewModels。
當我顯示其中一個具有160個項目的AssignmentViewModels時,需要1000毫秒才能加載。我認爲這是因爲從擁有150萬行的數據庫表抓取Notes屬性。我檢查了它,只用了60ms來填充Notes列表。所以我猜測這是將160個項目加載到列表框中的數據綁定。但是,情況並非如此,因爲listBoxes虛擬化了他們的內容(我對它進行了窺探並驗證了這些項目位於虛擬化的堆棧面板中)。
所以我很茫然,我不知道如何找出額外的940毫秒。
我能做些什麼來跟蹤這個問題?性能是關鍵,我不知道如何改進它。
非常感謝這些性能分析鏈接。我需要了解如何使用它們。 :) – Jose 2009-06-16 18:17:26