private void bindingSource1_AddingNew(object sender, AddingNewEventArgs e)
        {
            int         columnindex = 0;
            int         colindex    = 0;
            DataView    view        = this.bindingSource1.List as DataView;
            DataRowView rowview     = view.AddNew();

            colindex = 1 + (view.Table.Compute("max(ColIndex)", string.Empty) == DBNull.Value ? 0 : Convert.ToInt32(view.Table.Compute("max(ColIndex)", string.Empty)));

            if (this._Instance is KzxGridControl)
            {
                columnindex = (KzxGridControl.ColumnCount++);
            }
            else if (this._Instance is KzxTreeList)
            {
                columnindex = (KzxTreeList.ColumnCount++);
            }
            rowview["ColIndex"]             = colindex;
            rowview["Key"]                  = "column" + view.Count.ToString();
            rowview["Field"]                = string.Empty;
            rowview["MessageCode"]          = "0";
            rowview["DesigeCaption"]        = "显示标题" + columnindex.ToString();
            rowview["ColumnType"]           = ColumnType.Text.ToString();
            rowview["SourceTable"]          = string.Empty;
            rowview["DisplayMemberPath"]    = string.Empty;
            rowview["SelectedValuePath"]    = string.Empty;
            rowview["MaxLength"]            = 0;
            rowview["PasswordChar"]         = string.Empty;
            rowview["ReadOnly"]             = false;
            rowview["IsNull"]               = true;
            rowview["IsUnique"]             = false;
            rowview["Enabled"]              = true;
            rowview["Visible"]              = true;
            rowview["ValidateGroup"]        = string.Empty;
            rowview["FieldCaption"]         = string.Empty;
            rowview["Fixed"]                = DevExpress.XtraGrid.Columns.FixedStyle.None.ToString();
            rowview["ParentField"]          = string.Empty;
            rowview["ValueDependencyField"] = string.Empty;
            rowview["Width"]                = 50;
            rowview["AllowValueRange"]      = false;
            rowview["DataType"]             = KzxDataType.Str.ToString();
            rowview["MaxValue"]             = string.Empty;
            rowview["MinValue"]             = string.Empty;
            rowview["RegexString"]          = string.Empty;
            rowview["ToolTipMessageCode"]   = string.Empty;
            rowview["ToolTipText"]          = string.Empty;

            e.NewObject = rowview;
            XmlRow xmlrow = XmlRow.Converter(rowview);

            this.propertyGrid1.SelectedObject = xmlrow;
        }
        private void bindingSource1_PositionChanged(object sender, EventArgs e)
        {
            if (this.bindingSource1.Position >= 0)
            {
                DataRowView row    = this.bindingSource1.Current as DataRowView;
                XmlRow      xmlrow = XmlRow.Converter(row);

                this.propertyGrid1.SelectedObject = xmlrow;
            }
            else
            {
                this.propertyGrid1.SelectedObject = null;
            }
        }
        private void bindingSource1_ListChanged(object sender, ListChangedEventArgs e)
        {
            DataRowView rowview = null;

            if (e.ListChangedType == ListChangedType.ItemDeleted)
            {
                for (int i = 0; i < this.bindingSource1.Count; i++)
                {
                    rowview = this.bindingSource1[i] as DataRowView;
                    if (rowview != null)
                    {
                        rowview["ColIndex"] = i + 1;
                    }
                }
                if (this.bindingSource1.Current != null)
                {
                    rowview = this.bindingSource1.Current as DataRowView;
                    XmlRow xmlrow = XmlRow.Converter(rowview);

                    this.propertyGrid1.SelectedObject = xmlrow;
                }
            }
        }