gpt4 book ai didi

xamarin.android - mvxlistview 中未显示的项目

转载 作者:行者123 更新时间:2023-12-04 04:46:05 27 4
gpt4 key购买 nike

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

我的 View 绑定(bind)到从 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);
}

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

谢谢

阿米特

最佳答案

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

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

  • 使用新列表
  • 切换到使用 ObservableCollection
  • 实现一个自定义的 IMvxAdapter,它总是响应更改通知,即使它看起来没有发生任何更改。为此,请覆盖 if (_itemsSource == value) return;SeItemsSourcehttps://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Droid/Views/MvxAdapter.cs
  • 关于xamarin.android - mvxlistview 中未显示的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18170151/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com