更新一個TreeView的ItemsSource我有這樣的功能:每個用戶執行某些操作時在另一個線程
public void UpdateList()
{
BindList = Model.GetList();
TreeView1.ItemsSource = BindList;
}
UpdateList()需要被調用(因此樹視圖列表重新加載)。它目前工作,它只是非常緩慢,所以我想在另一個線程中執行它。
我對WPF相當陌生...在WinForms程序中,我用於製作委託並檢查InvokeRequired等。但是我發現這在WPF中不起作用。
所以,如果我想調用UpdateList(),以便它在另一個線程中運行,並且ItemsSource從另一個線程更新,那麼我應該如何執行?
感謝
[MSDN(HTTP: //msdn.microsoft.com/en-us/library/ms741870.aspx) – 2012-03-31 14:39:10
不應該這樣的事實,即ItemsSource已經綁定(BindList)到TreeView,並且線程函數正在更新BindList,這意味着UI應該自動反映這一點? – theqs1000 2012-03-31 14:53:00
在這個函數中,你正在訪問一個UI元素,它不能在後臺線程上完成,你可以改變這個集合本身,但它需要實現INotifyCollectionChanged。 – 2012-03-31 14:55:38