public List <SPColumn> GetColumns(bool refresh = false)
        {
            if (refresh || _columns.Count == 0)
            {
                IList <SPColumn> original = null;
                if (refresh)
                {
                    original = GetColumnsForCode();
                }

                _columns = spWrap.GetColumnList(this);
                if (original != null && original.Count > 0)
                {
                    foreach (SPColumn col in original)
                    {
                        int ndx = _columns.IndexOf(col);
                        if (ndx >= 0)
                        {
                            SPColumn.CopyColumnSettings(_columns[ndx], col);
                        }
                    }
                }
            }
            return(new List <SPColumn>(_columns));
        }