internal override void OnBeginningEdit(DataGridItemCancelEventArgs e)
        {
            object item = e.Item;

            // We throw instead of setting e.Cancel to True because we do not want to give the developer the chance to set it back to False.
            if (item is EmptyDataItem)
            {
                throw new DataGridException("Cannot begin edit on an empty data item or on an item that has a pending commit async operation.");
            }

            DataGridPageManagerBase pageManager = this.RootGroup.GetVirtualPageManager();

            if (pageManager.IsAsyncCommitQueuedForItem(item))
            {
                throw new DataGridException("Cannot begin edit on an empty data item or on an item that has a pending commit async operation.");
            }

            base.OnBeginningEdit(e);
        }