void btnPropertyInsert_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(tbProperty.Text) || cmbPropertyType.SelectedIndex < 0)
            {
                MessageBox.Show("属性名或者属性类型为空!");
            }
            else
            {
                PropertyInfo propertyInfo = new PropertyInfo();
                propertyInfo.PropertyName = tbProperty.Text;
                propertyInfo.PropertyNote = tbPropertyNote.Text;

                switch (Convert.ToString(cmbPropertyType.SelectedValue))
                {
                    case "string":
                        propertyInfo.PropertyType = "string";
                        propertyInfo.PropertyDBType = "VARCHAR2";
                        break;
                    case "datetime":
                        propertyInfo.PropertyType = "System.Nullable<System.DateTime>";
                        propertyInfo.PropertyDBType = "DATE";
                        break;
                    case "number":
                        propertyInfo.PropertyType = "System.Nullable<decimal>";
                        propertyInfo.PropertyDBType = "NUMBER";
                        break;
                }

                properyInfoList.Add(propertyInfo);

                BindingPropertyInfos();
            }
        }
        StringBuilder GeneratePropertyCode(PropertyInfo properyInfo)
        {
            StringBuilder template = new StringBuilder();
            if (properyInfo != null)
            {
                string name = properyInfo.PropertyName;
                string _name = "_" + (name.ToLower().Replace("_", ""));
                string note = properyInfo.PropertyNote;
                string type = properyInfo.PropertyType;
                string dbType = properyInfo.PropertyDBType;

                template.AppendFormat("private {0} {1};", type, _name);
                template.AppendLine();
                if (!string.IsNullOrEmpty(note))
                {
                    template.Append("/// <summary>");
                    template.AppendLine();
                    template.AppendFormat("///{0}", note);
                    template.AppendLine();
                    template.Append("/// </summary>");
                    template.AppendLine();
                }
                template.AppendFormat("[Column(Storage = \"{0}\", Name = \"{1}\", DbType = \"{2}\", AutoSync = AutoSync.Never)]"
                    , _name, name, dbType);
                template.AppendLine();
                template.Append("[DebuggerNonUserCode()]");
                template.AppendLine();
                template.AppendFormat("public {0} {1}", type, name);
                template.AppendLine();
                template.Append("{get{");
                template.AppendLine();
                template.AppendFormat("return this.{0};", _name);
                template.AppendLine();
                template.Append("}set{");
                template.AppendLine();
                template.AppendFormat(" if (({0} == value) == false)",
                    _name);
                template.AppendLine();
                template.Append("{");
                template.AppendLine();
                template.AppendFormat("this.{0} = value;this.OnPropertyChanged(\"{1}\");", _name, name);
                template.AppendLine();
                template.Append("}}}");
            }
            return template;
        }