public virtual void Clear()
        {
            bool changed = (iselectedrow != -1);

            iselectedrow = -1;

            Underlying.Clear();

            if (changed)
            {
                if (SelectionChanged != null)
                {
                    SelectionChanged(iselectedrow);
                }
            }
        }