私は 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);
}
これは、画面が更新されるまで (たとえば、画面を回転させる) 正しく動作しないようです。
ありがとう
アミット