我正在使用 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);
}
在刷新屏幕(例如旋转它)之前,这似乎无法正常工作我错过了什么吗?
谢谢
阿米特