我正在寫一個Silverlight應用程序,我試圖改善加載時間。有一個ObservableCollection更新用戶界面元素得到添加
當我的頁面加載,我先初始化我的ObservableCollection:
this.MyItems = new ObservableCollection<Item>();
我的UI是我通過代碼綁定到一個ObservableCollection一個列表框。在MainPage_Loaded中:
MyList.ItemsSource = App.ViewModel.MyItems;
現在我將UI綁定到我的模型。我期望這是有效的,因爲集合是空的,並且其餘的UI可以繼續加載(不確定我的假設是否正確)。
DataContext = App.ViewModel;
現在我想將項目添加到我的收藏:
for (int i = 0; i < number_of_items; i++)
{
this.MyItems.Add(myItems[i]); // myItems is a List<Item> already populated
Thread.Sleep(20);
}
我的目標是讓線程睡眠,以便它有時間來呈現每個列表框項目的用戶界面。另外,我預計我的用戶界面一次只能顯示一個項目。
結果是ListBox元素一次出現。如果我設置1秒鐘的睡眠時間,則1秒鐘後元素數量將填充ListBox。
優化此操作的好方法是什麼?如果它是徒勞的,我也可以將我的ListBox綁定到完全填充的ObservableCollection。謝謝!
你使用VirtualizingStackPanel嗎? – onmyway133 2012-12-09 08:47:35