private bool InsertParameter(UltraTreeNode parentNode, Parameter para)
        {
            if (Convert.ToInt32(parentNode.Tag) == 2)
            {
                UltraTreeNode paraNode = parentNode.Nodes.Add();
                paraNode.Tag = 3;

                paraNode.Override.ColumnSet = this.InputTree.ColumnSettings.ColumnSets["Parameter"];

                paraNode.Cells[0].Value = para.Key;
                paraNode.Cells[1].Value = para.Value;

                return true;
            }
            else
                return false;
        }
        /// <summary>
        /// Inset a parameter into set.
        /// </summary>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public bool AddParameter(string step, string key, string value)
        {
            Parameter input = new Parameter(step,key, value);

            if (this.mParameters.Contains(input))
                return false;
            else
            {
                this.mParameters.Add(input);
                return true;
            }
        }
        /// <summary>
        /// remove the specifed parameter from set.
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public bool RemoveParameter(string key)
        {
            Parameter input = new Parameter();
            input.Key = key;

            if (this.mParameters.Contains(input))
            {
                this.mParameters.Remove(input);
                return true;
            }
            else
                return false;
        }
        public ParameterCollection(XmlNode paras)
        {
            this.mKey = paras.Name;

            XmlNodeList ps = paras.SelectNodes("Parameter");

            foreach (XmlNode p in ps)
            {
                Parameter para = new Parameter(p);
                this.mParameters.Add(para);
            }
        }