public void ScrollTap(object sender, System.EventArgs e) { lock (new object()) { if (BindingContext != null) { Device.BeginInvokeOnMainThread(() => { while (vm.DelayedMessages.Count > 0) { vm.chat.Insert(0, vm.DelayedMessages.Dequeue()); } vm.ShowScrollTap = false; vm.LastMessageVisible = true; vm.PendingMessageCount = 0; ChatList?.ScrollToFirst(); }); } } }