5
4

2 回答 2

4

您正在一个线程中创建CollectionViewSource并在另一个线程(调度程序线程)中刷新它。更新你GetFriendsListCompleted

private void GetFriendsListCompleted(object sender, ResultsArgs<Friend> e)
{
    if (!e.HasError)
    {
        var curr = e.Results;
        if (curr != null)
        {
            Dispatcher.Invoke(DispatcherPriority.Normal, new Action(
                    () => {
                     this.FriendsList= new CollectionViewSource();
                     this.FriendsList.Source = list;
                     this.FriendsList.Filter += this.FriendFilter;
                     FilterText = "";
                     this.FriendsList.View.Refresh();
                     }));
        }
    }
}
于 2013-06-12T16:01:46.097 回答
0

您没有显示完成时在后台线程上实际运行的任何代码,但我猜测您正在创建一个集合对象,然后您尝试将其分配给您的 CollectionView。当 CV 尝试从您的 Refresh 调用更新(在 UI 线程上)时,它将尝试使用其他线程拥有的集合。

如果您包含相关代码,那么肯定会更容易说。

于 2013-06-12T14:04:21.123 回答