public override object CloneExp(MathNode parent)
        {
            MathNodeArgument node = (MathNodeArgument)base.CloneExp(parent);

            node.SetDataType(_dataType);
            return(node);
        }
 protected override void OnCloneDataType(MathNode cloned)
 {
     if (_dataType != null)
     {
         MathNodeArgument m = (MathNodeArgument)cloned;
         m._dataType = _dataType.Clone() as Parameter;
     }
 }
        public override object EditValue(System.ComponentModel.ITypeDescriptorContext context, System.IServiceProvider provider, object value)
        {
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (edSvc != null)
            {
                edSvc.CloseDropDown();
                ArguementListControl list = new ArguementListControl(edSvc);
                edSvc.DropDownControl(list);
                if (list.SelectedObj != null)
                {
                    value = list.SelectedObj.Name;
                    MathNodeArgument a = context.Instance as MathNodeArgument;
                    if (a != null)
                    {
                        a.SetDataType(list.SelectedObj);
                    }
                }
            }
            return(value);
        }