/// <summary>
        /// This method is used to perform the paste operation for the copied cell value to selected record cell.
        /// </summary>
        /// <param name="value">
        /// Contains copied cell value to paste.</param>
        /// <param name="column">
        /// Contains the corresponding column of the selected cell.</param>
        /// <param name="record">
        /// Contains the record of the selected cell.
        /// </param>
        protected virtual void PasteCell(object record, TreeGridColumn column, object value)
        {
            if (this.TreeGrid.View == null)
            {
                return;
            }
            var    provider = this.TreeGrid.View.GetPropertyAccessProvider();
            object properyCollection;

            if (!(TreeGrid.View is TreeGridUnboundView))
            {
                properyCollection = this.TreeGrid.View.GetItemProperties();
            }
            else
            {
#if UWP
                PropertyInfoCollection typeInfos = new PropertyInfoCollection(record.GetType());
                properyCollection = typeInfos.GetItemPropertyInfo();
#else
                PropertyDescriptorCollection typeInfos = TypeDescriptor.GetProperties(record);
                properyCollection = typeInfos.GetItemPropertyInfo();
#endif
            }
            if (properyCollection == null)
            {
                return;
            }
            var pasteargs = this.RaisePasteGridCellContentEvent(column, record, value);
            value = pasteargs.ClipBoardValue;
            if (!pasteargs.Handled)
            {
                CommitValue(record, column, value);
            }
        }