/// <include file='doc\DataGridGeneralPage.uex' path='docs/doc[@for="DataGridGeneralPage.SaveComponent"]/*' />
        /// <devdoc>
        ///   Saves the component loaded into the page.
        /// </devdoc>
        protected override void SaveComponent()
        {
            DataGrid dataGrid = (DataGrid)GetBaseControl();

            dataGrid.ShowHeader   = showHeaderCheck.Checked;
            dataGrid.ShowFooter   = showFooterCheck.Checked;
            dataGrid.AllowSorting = allowSortingCheck.Checked;

            string dataKeyField = String.Empty;

            if (dataKeyFieldCombo.IsSet())
            {
                dataKeyField = (string)dataKeyFieldCombo.SelectedItem;
            }
            dataGrid.DataKeyField = dataKeyField;

            if (dataSourceDirty)
            {
                // save the datasource as a binding on the control

                DataGridDesigner      dataGridDesigner = (DataGridDesigner)GetBaseDesigner();
                DataBindingCollection dataBindings     = dataGridDesigner.DataBindings;

                if (currentDataSource == null)
                {
                    dataGridDesigner.DataSource = String.Empty;
                    dataGridDesigner.DataMember = String.Empty;
                }
                else
                {
                    dataGridDesigner.DataSource = currentDataSource.ToString();

                    if (dataMemberCombo.IsSet())
                    {
                        dataGridDesigner.DataMember = (string)dataMemberCombo.SelectedItem;
                    }
                    else
                    {
                        dataGridDesigner.DataMember = String.Empty;
                    }
                }

                dataGridDesigner.OnDataSourceChanged();
            }
        }
        /// <include file='doc\DataGridGeneralPage.uex' path='docs/doc[@for="DataGridGeneralPage.LoadComponent"]/*' />
        /// <devdoc>
        ///   Loads the component into the page.
        /// </devdoc>
        protected override void LoadComponent()
        {
            InitPage();

            DataGrid dataGrid = (DataGrid)GetBaseControl();

            LoadDataSourceItems();

            showHeaderCheck.Checked   = dataGrid.ShowHeader;
            showFooterCheck.Checked   = dataGrid.ShowFooter;
            allowSortingCheck.Checked = dataGrid.AllowSorting;

            if (dataSourceCombo.Items.Count > 0)
            {
                DataGridDesigner dataGridDesigner = (DataGridDesigner)GetBaseDesigner();
                string           dataSourceValue  = dataGridDesigner.DataSource;

                if (dataSourceValue != null)
                {
                    int dataSourcesAvailable = dataSourceCombo.Items.Count;
                    for (int j = 1; j < dataSourcesAvailable; j++)
                    {
                        DataSourceItem dataSourceItem =
                            (DataSourceItem)dataSourceCombo.Items[j];

                        if (String.Compare(dataSourceItem.Name, dataSourceValue, true, CultureInfo.InvariantCulture) == 0)
                        {
                            dataSourceCombo.SelectedIndex = j;
                            currentDataSource             = dataSourceItem;
                            LoadDataMembers();

                            if (currentDataSource is ListSourceDataSourceItem)
                            {
                                string dataMember = dataGridDesigner.DataMember;
                                dataMemberCombo.SelectedIndex = dataMemberCombo.FindStringExact(dataMember);

                                if (dataMemberCombo.IsSet())
                                {
                                    ((ListSourceDataSourceItem)currentDataSource).CurrentDataMember = dataMember;
                                }
                            }

                            LoadDataSourceFields();

                            break;
                        }
                    }
                }
            }

            string dataKeyField = dataGrid.DataKeyField;

            if (dataKeyField.Length != 0)
            {
                int fieldIndex = dataKeyFieldCombo.FindStringExact(dataKeyField);
                dataKeyFieldCombo.SelectedIndex = fieldIndex;
            }

            if (dataGrid.AutoGenerateColumns)
            {
                columnInfoLabel.Text = SR.GetString(SR.DGGen_AutoColumnInfo);
            }
            else
            {
                columnInfoLabel.Text = SR.GetString(SR.DGGen_CustomColumnInfo);
            }

            UpdateEnabledVisibleState();
        }