2

我正在使用 mvvmcross(非常有趣),但在从 mvxlistview 添加和删除项目时一直遇到问题:

我的视图绑定到从 Web 服务器检索的项目列表,因此它在不同的线程中完成:

async void  ActivateSearchInvoked ()
    {
        _activeSearchViewModel.IsLoading = true;
        await _activeSearchViewModel.Search (SearchString);
        _activeSearchViewModel.IsLoading = false;
    }   

Search 是一个调用 InnerSearch 的方法,这里是 View Model 中的代码

protected override Task InnerSearch ()
    {
        Users.Clear ();
        return Task.Factory.StartNew (SearchForUsers);
    }

    protected virtual void SearchForUsers()
    {
        int requestringUserID = AppConfiguration.Instance.User.ID;
        List<User> users = GetUsersFromWeb();
        if(users == null)
        {
            return;
        }
        foreach (var item in users)
        {
            Users.Add (new UserViewModel (item));
        }
        RaisePropertyChanged (() => Users);
    }

在刷新屏幕(例如旋转它)之前,这似乎无法正常工作我错过了什么吗?

谢谢

阿米特

4

1 回答 1

3

除非您实际上使用不同的源列表或 INotifyCollectionChanged 支持集合,否则 MvxAdapter 将收到您的更改通知 - 但实际上不会知道它有任何工作要做。

为了解决这个问题,要么:

于 2013-08-12T07:10:27.333 回答