public virtual void Update(ChatMessagesViewElement.UpdateModes updateMode) { if (this.IsUpdateSuspended) { this.suspendedUpdates |= updateMode; } else { if ((updateMode & ChatMessagesViewElement.UpdateModes.InvalidateMeasure) == ChatMessagesViewElement.UpdateModes.InvalidateMeasure) { this.InvalidateMeasure(true); } if ((updateMode & ChatMessagesViewElement.UpdateModes.UpdateLayout) == ChatMessagesViewElement.UpdateModes.UpdateLayout) { this.UpdateLayout(); } if ((updateMode & ChatMessagesViewElement.UpdateModes.UpdateScroll) == ChatMessagesViewElement.UpdateModes.UpdateScroll) { this.Scroller.UpdateScrollRange(); } if ((updateMode & ChatMessagesViewElement.UpdateModes.Invalidate) != ChatMessagesViewElement.UpdateModes.Invalidate) { return; } this.ViewElement.Invalidate(); } }
public virtual void EndUpdate(bool update) { this.isUpdateSuspended = false; if (update) { this.Update(this.suspendedUpdates); this.suspendedUpdates = ChatMessagesViewElement.UpdateModes.InvalidateItems; } if (!this.scrollToBottomAfterEndUpdate) { return; } this.VScrollBar.Value = this.VScrollBar.Maximum - this.VScrollBar.LargeChange + 1; }