/// <summary>
        /// Binds the grid for defined types.
        /// </summary>
        private void gDefinedType_Bind()
        {
            var queryable = new DefinedTypeService( new RockContext() ).Queryable();

            int? categoryId = tFilter.GetUserPreference( "Category" ).AsIntegerOrNull();
            if ( categoryId.HasValue )
            {
                queryable = queryable.Where( a => a.CategoryId.HasValue && a.CategoryId.Value == categoryId.Value );
            }

            SortProperty sortProperty = gDefinedType.SortProperty;
            if ( sortProperty != null )
            {
                queryable = queryable.Sort( sortProperty );
            }
            else
            {
                queryable = queryable.OrderBy( a => a.Category.Name ).ThenBy( a => a.Name );
            }

            gDefinedType.DataSource = queryable
                .Select( a =>
                new
                {
                    a.Id,
                    Category = a.Category.Name,
                    a.Name,
                    a.Description,
                    a.IsSystem,
                    FieldTypeName = a.FieldType.Name
                } )
                .ToList();
            gDefinedType.DataBind();
        }