更新一个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