private void ddlDataRule_SelectedIndexChanged(object sender, EventArgs e)
        {
            IFormElementDataListColumnDataRule dataRule = ddlDataRule.SelectedItem as IFormElementDataListColumnDataRule;

            panelDataRule.Controls.Clear();
            panelDataRule.Controls.Add(dataRule.ParameterSetPanel);
        }
        public static void SetParameter(this IFormElementDataListColumnDataRule dataColumnDataRule, UIElementDataListColumnDataRuleAbstract dataRule)
        {
            IFormElementDataListColumnDataRuleParameterSetControl control = dataColumnDataRule.ParameterSetPanel as IFormElementDataListColumnDataRuleParameterSetControl;

            if (control == null)
            {
                Debug.Assert(false, "没有实现 IFormElementDataColumnDataRuleParameterSetControl");
                return;
            }
            control.SetParameter(dataRule);
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            #region 数据验证

            if (!this.DoValidate())
            {
                return;
            }

            #endregion

            #region 检查指定的代码在正在编辑的列表中是否已存在

            //检查指定的代码在正在编辑的列表中是否已存在
            if (this.EditCollection != null)
            {
                FormElementDataListTextBoxColumnEntityDev formElementDataColumnEntityDev;
                foreach (object obj in this.EditCollection)
                {
                    if (obj == this.FormElementDataColumnEntity)
                    {
                        continue;
                    }

                    formElementDataColumnEntityDev = obj as FormElementDataListTextBoxColumnEntityDev;
                    if (formElementDataColumnEntityDev.Code.Equals(this.txtCode.Text))
                    {
                        MessageBox.Show(
                            Language.Current.FormSEPaginationDataGridViewDevColumnAdd_MessageElementCodeExist,
                            CommonLanguage.Current.MessageCaption_Notice,
                            MessageBoxButtons.OK, MessageBoxIcon.Information
                            );
                        return;
                    }
                }
            }

            #endregion

            #region 如果不是编辑状态,new一个新的FormElementDataListTextBoxColumnEntityDev

            if (_isEdit == false)
            {
                this.FormElementDataColumnEntity    = new FormElementDataListTextBoxColumnEntityDev();
                this.FormElementDataColumnEntity.Id = Guid.NewGuid().ToString();
            }

            #endregion

            #region 查检指定的代码是否已被占用

            //查检指定的代码是否已被占用
            if (this.FormElementDataColumnEntity.Code != this.txtCode.Text)
            {
                //检查指定的代码在窗体元素中是否已存在
                //这里要忽略掉Id,因为到FormEntity中去检查时,FormEntity中的数据列与正在编辑的数据列不是同步的
                //一个数据列对象的code如果由a改成b,只要还没保存,那FormEntity中的就还是a,如果由b再改回a
                //这时到FormEntity中去查,就会报a已被占用,所以要忽略掉Id
                if (!this.FormEntity.ValidateCode(this.txtCode.Text, FormElementDataColumnEntity.Id))
                {
                    MessageBox.Show(
                        Language.Current.FormSEPaginationDataGridViewDevColumnAdd_MessageElementCodeExist,
                        CommonLanguage.Current.MessageCaption_Notice,
                        MessageBoxButtons.OK, MessageBoxIcon.Information
                        );
                    return;
                }
            }

            #endregion

            #region 保存数据

            this.FormElementDataColumnEntity.Name = txtName.Text;
            this.FormElementDataColumnEntity.Code = txtCode.Text;
            this.FormElementDataColumnEntity.Text = txtText.Text;

            this.FormElementDataColumnEntity.IsBind  = radioButtonBind.Checked;
            this.FormElementDataColumnEntity.Visible = cbVisible.Checked;
            if (ddlDataItem.SelectedValue != null)
            {
                this.FormElementDataColumnEntity.DataItemId = this._dataEntityId + "." + ddlDataItem.SelectedValue.ToString();
            }
            this.FormElementDataColumnEntity.DataPropertyName = txtDataPropertyName.Text;

            #region 数据规则

            //数据规则
            IFormElementDataListColumnDataRule dataRule = this.ddlDataRule.SelectedItem as IFormElementDataListColumnDataRule;
            this.FormElementDataColumnEntity.DataRule = dataRule.GetParameter();

            #endregion

            if (this.ShellControlDev == null)
            {
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                this.btnCancel.Text = Language.Current.FormSEPaginationDataGridViewDevColumnAdd_ButtonClose;

                FormElementDataListEntityDev.AddColumnCommand command = new FormElementDataListEntityDev.AddColumnCommand(this._entity)
                {
                    Column = this._formElementDataColumnEntity
                };

                _windowDesignService.ExecuteCommand(command, new Action <SEUndoUnitAbstract, SEUndoEngine.Type>(
                                                        delegate(SEUndoUnitAbstract undoUnit, SEUndoEngine.Type type)
                {
                    SEUndoEngineFormDesigner undoEngine = undoUnit.UndoEngine as SEUndoEngineFormDesigner;
                    undoEngine.UpdateView(this._entity);
                    undoEngine.UpdatePropertyGrid(false);
                }));

                ResetControl();
                this.ShellControlDev.UpdateView();
            }

            #endregion

            _windowDesignService.MakeDirty();
        }
        /// <summary>
        /// 窗体载入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FormSEPaginationDataGridViewDevColumnAdd_Load(object sender, EventArgs e)
        {
            #region 根据传来的数据实体Id(或空串)判断是否可绑定,并加载相应数据
            //根据传来的数据实体Id(或空串)判断是否可绑定,并加载相应数据
            if (this._dataEntityId == null || this._dataEntityId == String.Empty)
            {
                radioButtonUnBind.Checked = true;
                radioButtonBind.Enabled   = false;
            }
            else
            {
                radioButtonBind.Checked = true;
                //加载数据项下拉列表
                ddlDataItem.DataSource = _dataEntityComponentService.GetDataEntity(this._dataEntityId).Items;
            }
            ChangeBind();
            #endregion

            #region 判断是否编辑状态
            //判断是否编辑状态
            if (this.FormElementDataColumnEntity == null)
            {
                return;
            }

            this._isEdit = true;

            #endregion

            #region 加载要编辑的列的信息

            //加载要编辑的列的信息
            this.txtName.Text = this.FormElementDataColumnEntity.Name;
            this.txtCode.Text = this.FormElementDataColumnEntity.Code;
            this.txtText.Text = this.FormElementDataColumnEntity.Text;

            if (this.FormElementDataColumnEntity.IsBind)
            {
                this.radioButtonBind.Checked = true;
            }
            else
            {
                this.radioButtonUnBind.Checked = true;
            }
            if (this.radioButtonBind.Checked)
            {
                this.ddlDataItem.SelectedValue = this.FormElementDataColumnEntity.DataItemId.Split('.')[1];
            }
            this.txtDataPropertyName.Text = this.FormElementDataColumnEntity.DataPropertyName;
            this.cbVisible.Checked        = this.FormElementDataColumnEntity.Visible;


            //数据规则
            foreach (object obj in this.ddlDataRule.Items)
            {
                UIElementDataListColumnDataRuleAbstract dataRuleAbstract = obj as UIElementDataListColumnDataRuleAbstract;
                if (dataRuleAbstract.GetType().Equals(this.FormElementDataColumnEntity.DataRule.GetType()))
                {
                    this.ddlDataRule.SelectedItem = obj;
                    break;
                }
            }

            IFormElementDataListColumnDataRule dataRule = this.ddlDataRule.SelectedItem as IFormElementDataListColumnDataRule;
            dataRule.SetParameter(this.FormElementDataColumnEntity.DataRule);

            #endregion

            #region 显示warning信息

            //显示warning信息
            //if (this.FormElementDataColumnEntity.Warning && this.FormElementDataColumnEntity.SelfWarning)
            //{
            //    MessageBox.Show(
            //        this.FormElementDataColumnEntity.WarningMsg,
            //           Language.Current.MessageBoxCaptiton_Warning,
            //           MessageBoxButtons.OK,
            //           MessageBoxIcon.Warning
            //           );
            //}
            if (this.FormElementDataColumnEntity.Warning.ExistWarning)
            {
                FormWarning formWarning = new FormWarning();
                formWarning.WarningSign = this.FormElementDataColumnEntity.Warning;
                formWarning.ShowDialog();
            }

            #endregion
        }