/// <summary>
        /// Moves a cell view around in the collection.
        /// </summary>
        /// <param name="index">Index of the cell view to move.</param>
        /// <param name="direction">The change in position, relative to the current position.</param>
        public virtual void Move(int index, int direction)
        {
            Debug.Assert(index >= 0 && index < CellViewList.Count);
            Debug.Assert(index + direction >= 0 && index + direction < CellViewList.Count);

            IFrameCellView CellView = CellViewList[index];

            CellViewList.RemoveAt(index);
            CellViewList.Insert(index + direction, CellView);
        }
        /// <summary>
        /// Removes a cell view from the collection.
        /// </summary>
        /// <param name="index">Index where to remove the cell view.</param>
        public virtual void Remove(int index)
        {
            Debug.Assert(index >= 0 && index <= CellViewList.Count);

            CellViewList.RemoveAt(index);
        }