2
我想加載我的CollectionViewSource
異步。所以我寫了這樣的代碼:如何從任務更新CollectionViewSource的Source屬性?
list1 = new List<int>();
list2 = new List<int>();
Task.Factory.StartNew<Tuple<List<int>, List<int>>>(() =>
{
// Create and return tuple with 2 lists
}).ContinueWith(doneTask =>
{
list1 = doneTask.Result.Item1;
list2 = doneTask.Result.Item2;
// update UI
collectionViewSource1.Source = list1;
collectionViewSource2.Source = list2;
}, TaskScheduler.FromCurrentSynchronizationContext());
但是這段代碼不起作用。
發生異常System.ArgumentException: Must create DependencySource on same Thread as the DependencyObject.
。
@ H.B .:此代碼不起作用。它引發了同樣的例外。 – 2011-04-20 07:24:13
你可以固定它發生的代碼行嗎? – 2011-04-20 07:28:56
@ H.B .:我的調試器在異常發生時不顯示代碼行,但如果我註釋這兩行:collectionViewSource1.Source = list1; collectionViewSource2.Source = list2,代碼工作正常。我甚至可以更新UI,但無法更新此綁定。 – 2011-04-20 07:34:06