Код: Выделить всё
public static AsyncObservableCollection MovieComments = new AsyncObservableCollection();
public static async Task ListenForCommentChanges(int showId, ShowType showType)
{
var commentList = showType == ShowType.Movie ? MovieComments : TvShowComments;
var query = database.Collection(showType.ToString() + showId);
FirestoreChangeListener listener = query.Listen(snapshot =>
{
foreach (var documentSnapshot in snapshot.Changes)
{
var x = documentSnapshot.Document;
Dictionary comments = x.ToDictionary();
Comment com = new Comment();
com.Id = comments["Id"].ToString();
com.Email = comments["Email"].ToString();
com.DisplayName = comments["DisplayName"].ToString();
com.Text = comments["Text"].ToString();
if (documentSnapshot.ChangeType == DocumentChange.Type.Added)
{
if (com.ReplyToCommentId == "-1")
{
commentList.Add(com);
}
}
}
});
lis = listener;
}
Код: Выделить всё
FirestoreManager.ListenForCommentChanges(500, ShowType.Movie).Wait();
затем я попробовал AsyncObservableCollection. Это не выдает мне ошибку, но на этот раз элементы не добавляются. А в комментариях к AsyncObservableCollection написано: «Вы не можете изменить коллекцию во время обратного вызова». Как я могу изменить коллекцию Observable во время обратного вызова? Есть ли какая-нибудь специальная ObservableCollection, с помощью которой я могу это сделать?
Я пробовал также разные коллекции Observable из этой: ObservableCollections Ни одна из них не работала
Подробнее здесь: https://stackoverflow.com/questions/791 ... r-callback
Мобильная версия