private SequencerViewModel MakeSequencerViewModel(Timeline timeline)
        {
            // Hack: Extract view state from old view model and inject into new one,
            // so it can work with it without before the view is updated.
            double viewportLeftOffsetPx = CurrentDocument?.GetViewportLeftOffsetPx() ?? 0.0;
            double viewportWidthPx      = CurrentDocument?.GetViewportWidth() ?? 1000.0;

            var newDocument = new SequencerViewModel(timeline);

            newDocument.SetViewportState(viewportLeftOffsetPx, viewportWidthPx);
            return(newDocument);
        }