public override void Load()
        {
            try
            {
                GridView _gridView = m_listView.View as GridView;

                if (_gridView == null || _gridView.Columns.Count == 0)
                {
                    return;
                }

                GridViewColumnSetting[] _columnSettings = OriginalColumnSettings;

                if (_columnSettings == null || _columnSettings.Length == 0)
                {
                    return;
                }

                for (int displayIndex = 0; displayIndex < _columnSettings.Length; displayIndex++)
                {
                    GridViewColumnSetting _columnSetting = _columnSettings[displayIndex];

                    if (_columnSetting.Index < 0 || _columnSetting.Index >= m_gridViewColumns.Count)
                    {
                        continue;
                    }

                    GridViewColumn _gridViewColumn = m_gridViewColumns[_columnSetting.Index];

                    if (m_useWidth)
                    {
                        _gridViewColumn.Width = _columnSetting.Width;
                    }

                    if (!m_useDisplayIndex)
                    {
                        continue;
                    }

                    if (_columnSetting.Index == _columnSetting.DisplayIndex)
                    {
                        continue;
                    }

                    int _oldIndex = _gridView.Columns.IndexOf(_gridViewColumn);
                    _gridView.Columns.Move(_oldIndex, _columnSetting.DisplayIndex);
                }
            }
            catch
            {
                if (ThrowOnErrorLoading)
                {
                    throw;
                }
            }
        }
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }

            GridViewColumnSetting _compare = obj as GridViewColumnSetting;

            if (_compare == null)
            {
                return(false);
            }

            return
                (Equals(m_index, _compare.m_index) &&
                 Equals(m_displayIndex, _compare.m_displayIndex) &&
                 Equals(m_width, _compare.m_width));
        }