protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e) { Margins.Clear(); disposables.Dispose(); collectionChangedDisposable.Dispose(); _caretTimer.Tick -= CaretTimerTick; textSurface = null; marginContainer = null; TextDocument = null; }