private IObservable<SelectionViewModel> GetSelection(UIElement relativeTo)
        {
            IObservable<SelectionViewModel> mouseMoveObservable =
                from mouseDown in relativeTo.GetMouseDown()
                let mouseDownPosition = mouseDown.EventArgs.GetPosition(relativeTo)
                from mouseMove in relativeTo.GetMouseMove().TakeUntil(relativeTo.GetMouseUp())
                let mouseMovePosition = mouseMove.EventArgs.GetPosition(relativeTo)
                select new SelectionViewModel(mouseDownPosition, mouseMovePosition);

            return mouseMoveObservable;
        }