/// <summary>
        /// Gets the zero-based index of the column that is bound
        /// to the specified <paramref name="dataField"/> property.
        /// </summary>
        /// <param name="dataField">The property name.</param>
        /// <param name="property">A reference to the <see cref="EntityProperty"/> object.</param>
        /// <returns>The column index.</returns>
        public int GetColumnIndex(String dataField, out EntityProperty property)
        {
            int index = -1;
            property = null;

            if ( !String.IsNullOrEmpty(dataField) )
            {
                foreach ( EntityProperty prop in PropertyMappings )
                {
                    if ( dataField.Equals(prop.DataField) )
                    {
                        index = prop.ColumnIndex;
                        property = prop;
                        break;
                    }
                }
            }

            return index;
        }
        /// <summary>
        /// Gets the <see cref="TableCell"/> object that is bound to
        /// the specified <paramref name="dataField"/> property.
        /// </summary>
        /// <param name="row">A <see cref="GridViewRow"/> object.</param>
        /// <param name="dataField">The property name.</param>
        /// <param name="property">a <see cref="EntityProperty"/> object.</param>
        /// <returns>A <see cref="TableCell"/> object.</returns>
        public TableCell GetCell(GridViewRow row, String dataField, out EntityProperty property)
        {
            TableCell cell = null;
            property = null;

            if ( row != null )
            {
                int index = GetColumnIndex(dataField, out property);

                if ( index > -1 && index < row.Cells.Count )
                {
                    cell = row.Cells[index];
                }
            }

            return cell;
        }